Skip to main content

Full text of "Analog Computing Magazine Issue 11 (Adventure in the 5th Dimension)"

See other formats


"UMB^R 11 



BMFSLDEgSISglg^ 





^^fr.^. 






















l^lo^ll^e 















^°uaPW- ,„,,an^o^^'' ' 



• deyg'^' 



5VJR'^^ 



^u£^^ 



sft\c 



,a\\M.^ 



penp^^^^ 



.oN^^^:t^^^ 



.os/M^'.^l^;o»^v.«' 



t^^MiL 



Fir^aLDGSi!^^^ 



FEATURES/ARTICLES 

The West Coast Computer Faire 12 

D;CHECK/C:CHECK and Control Characters 26 

Strings in ATARI Basic Richard G. Lyons 35 

What the Software Reviewers Are Saying 

About Your Documentation Jessie Stephens 46 

Copyright Basics Thomas Krischan 66 



llfK^^Sifeiiiil 




REVIEWS/PROFILES 

ATARI Pascal — 

A Good Product? Raymond T. Tillman 42 

BASIC Compilers — 

A Comparative Review Brian Moriarty 59 

Disk Backup Programs Brian Moriarty 72 

The New AtariWriter Cartridge Dick Kushner 107 



•SEtECTIOHSl 



IHC rOLLOHIHC 



risi,v o'4D oueRAce 



li'iiiL WFmuws- r. 1 i,!.>j^ilTT use 

AND CDn^T 

PRXMTOUT OF ALL ELECTRICAL 

use tmtn 

OAT* IHPUT IM9THUCTI0M5 
EKIT PROGRAH 



TYPE LETTEB OF OPTION VOU MAMT 



PROGRAM LISTINGS 

C.CHECK Tom Hudson 16 

BASIC Programming Techniques Thomas Krischan 20 

Moving Missiles in BASIC Tom Hudson 29 

Home Energy Consumption Analysis .... Joseph Harb 52 

Utility No. 5: Memory Check Tony Messina 78 

A Disk Cataloging Thomas Ray Hamel 

Utility and Bert Williams 85 

Adventure in the Fifth Dimension Brian Moriarty 90 

Graphics 7+ Handler Tom Hudson 98 

EPSET Dick Tedeschi 112 



COLUMNS 



Editorial Jon Bell 6 

Reader Comment 8 

Index to Advertisers 114 



our lacatloni 
S«r»«t corner. 



VOU can goi N s H 
VOU soe: Horning pa^ 



iTii 



Jkay . _ 

'>>>> What next-?! 



'ij 



Cl§=' B o aea 






onfi ' citzi 



r-n 



A.N.A.L.O.G. STAFF 



Editors/Publishers 

MICHAEL DESCHENES 
LEE H. PAPPAS 

Managing Editor 

JON A. BELL 

Contributing Editors 

TONY MESSINA 
DR. GARY ROSE 
MARCIA ROSE 

Art Director 

BOB DESI 

Technical Division 

CHARLES BACHAND 
TOM HUDSON 
BRIAN MORIARTY 

Advertising Manager 

MICHAEL DESCHENES 

Distribution 

PATRICK J. KELLEY 

Typography 

HENDRICKX & 

LARRIVEE Co., Inc. 

Production /Distribution 

LORELL PRESS, INC. 

Contributors 

THOMAS RAY HAMEL 
JOSEPH HARB 
THOMAS KRISCHAN 
DICK KUSHNER 
RICHARD G. LYONS 
' JESSIE STEPHENS 
DICK TEDESCHI 
RAYMOND T. TILLMAN 
BERT WILLIAMS 



A.N.A.L.O.G. 

Magazine Corp. is in no 

way affiliated with 

ATARI. 

ATARI is a trademark of 

ATARI, Inc. 



ABOUT 

THE 
COVER 



The cover to this issue was produced as follows: the ATARI 
circuit board logo was constructed as a scratch-built model, 
using sheet styrene, old memory board chips, resistors and 
wire, and was painted green with gold traces. It was then 
mounted over a sheet of plexiglas on which a grid pattern had 
been painted. The plexiglass was lit from behind; the ATARI 
logo was front-lit; and here you have it — the cover to issue 
no. II. 



SUBSCRIPTIONS 

All subscription orders and other correspondence related to 
subscriptions (except for Tape and Disk subscriptions), should 
be addressed to: A.N.A.L.O.G. COMPUTING 
P.O. Box 615 
Holmes, PA 19043 
Foreign subscriptions must be made in U.S. currency. 
Subscription prices: U.S. Canada Foreign 

lyr.$ 14.00 $18.00 $24.00 

2yrs. $27.00 $31.00 $37.00 

3 yrs. $38.00 $42.00 $48.00 

Airmail delivery on foreign subscriptions is available for an 
additional $36.00 per year. 

Please allow six to eight weeks for subscriptions to begin. 
Allow eight weeks for change of address. 



A.N.A.L.O.G. COMPUTING (ISSN 0744-9917) is published bi-monthly for $14 
per year by A.N.A.L.O.G. Magazine Corp., 565 Main Street, Cherry Valley, MA 
01611, Tel. (617) 892-3488. Second-class postaRC paid at Worcester, MA and addi- 
tional mailing offices. POSTMASTER: Send address changes to A.N.A.L.O.G. 
COMPUTING, P.O. Box 615, Holmes, PA 19043. No portion of this magazine may 
be reproduced in any form without written permfssion of the publisher. Program list- 
ings should be provided in printed form. Articles should be furnished as typed copy in 
upper and lower case with double spacing. By submitting articles to A.N.A.L.O.G. 
COMPUTING, authors acknowledge that such materials, upon acceptance for 
publication, become the exclusive property of A.N.A.L.O.G. If not accepted for 
publication, the articles and/or programs will remain the property of the author. If 
submissions are to be returned, please supply self-addressed, stamped envelope. 
U.S.A. Newstand distribution by Eastern News Distributors, Inc., Ill Eighth Ave., 
New York, NY 10011. 

Contents copyright © 1983 A.N.A.L.O.G. Magazine Corp. 



80 COLUMN COLOR VIDEO BOARD 
FOR THE ATARI 800 



iTM 



IF YOU USE YOUR ATARI 800"^ FOR: 

• PROGRAMMING • TERMINAL COMMUNICATIONS 

• WORD PROCESSING • DATABASES 

THE AUSTIN 80 ' COLOR VIDEO BOARD GIVES YOU 
THE OPTIMUM FEATURES. . . 

—80 * 25 Character Screen 

—256 Character set with line and box graphics 

—Underline, blink, reverse, half intensity 

—Smooth scrolling 

—16 color RGBI or RGB outputs + composite video 

—Uses medium resolution B&W or color monitor 

—Fits in last slot of 800 

—Light pen input 

LIST PRICE $279^5 

SOFTWARE TO MAKE OPTIMUM USE OF THE AUSTIN 80"^ 

SMART TERMINAL - EMMULATES DEC VTiOO"^ - $19^^ 

WORD PROCESSOR with CONFIGURABLE PRINTERS 

SUMMER '83 

OPTIONAL RGBI OUTPUT CABLE - $34^^ 

AUSTIN 80"^ CARRIES A 1 -YEAR PARTS AND LABOR WARRANTY 

Ask for AUSTIN BOARDS at your local dealer or call 

617-772-0352 

AUSTIN FRANKLIN ASSOCIATES 

43 GROVE STREET, AYER, MA 01432 

M/C, VISA & COD ACCEPTED DEALER INQUIRIES INVITED 

'ATARI IS A REGISTERED TRADEMARK OF ATARI, INC. 



PAGE 6 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 




1 
I I 






by Jon Bell 



In the first weeks prior to last Christmas, I had the 
opportunity to discuss ATARI computer sales with a 
local computer store owner. His business was 
booming. There was a mad rush for joysticks, games, 
educational software and computers. I watched a 
salesman make several pitches for both the 400 and 
the 800. His customers were usually young couples, 
shopping for their first home computer. Many of 
these couples wanted their children to learn how to 
use a computer and to help prepare them for the 
world of the 1990s, when it is estimated that one 
out of every four American households will have 
personal computers and computer literacy will be 
regarded as a job necessity. However, most of these 
couples did not have a lot of money to spend, and a 
1982 Christmas package consisting of an ATARI 
800, 810 disk drive and software cost, at that time, 
over a thousand dollars. Therefore, the couples were 
interested in a cheaper system, one that could 
expand as their children — and assets — grew. They 
looked at the 400. The salesman made his pitches for 
it. I heard this response: 

" — but this can't be expanded to more memory, 
can it?" 

1 shook my head in dismay as the salesman 
explained to several people that that belief was a 
common fallacy. 1 asked the store owner if this was a 
typical question. He told me that he had heard over a 
dozen people ask that same question in the past two 
weeks. 

Nowhere in ATARI'S literature or advertising for 
the 400 does ATARI mention that the 16K 400 can 
be upgraded to 48K. Consequently, in comparison 
ads pitting the ATARI 400 against such other small 
home computers as the TI-99/4A, the VIC 20 or the 
Commodore 64, such a personal computer 
authority as Bill Cosby can get away with implying 
that the 400 is limited to only 16K. Whenever I see 
that ad, I get annoyed. Not at Bill Cosby, certainly, or 
even Texas Instruments, the makers of the 
commercial, but at ATARI for their neglect of third- 
party hardware and software. They are hurting 
themselves with their "ATARI is an island" attitude. 

A company should work with its customers. By 
extension, people who manufacture goods used in 
conjunction with your company's products are your 
customers too, and should be treated with respect. 



They are helping to promote your products. It is not 
wrong for others to make money off of your success 
if you do not have the ambition or the ability to "fill 
in the gaps" present in your products. The only way 
to stop these other companies would be to 
discontinue your own product — and if that isn't 
killing the goose that laid the golden egg, 1 don't 
know what is. I consider ATARI'S inexplicable 
"isolationism" to be quite harmful, and ultimately 
alienating to many people. D 



WINNERS! 



In issue number 9 of A.N.A.L.O.G. Com- 
puting we inserted a readers poll card. 
As an incentive to send in the card, we 
did a random drawing and picked three 
people. They will be receiving a free 
disk or cassette subscription. Here are 
the winners: 

STEPHEN W. YIP 
Concord, CA 

ALISTAIRE B. CALLENDER 
Norman, OK 

JAN BANICKI 
South Bend, IN 

A.N.A.L.O.G. would like to thank every- 
one who took the time to send in their 
card. 



ISSUE ttl8 CONTAINED 1 ERROR. 
IS THE CORRECTION: 



D:CHECK2 CPG. 26) 



HERE 



138 CLOSE ttl:? "ENTER FILENAME"; : INPUT 
FIS 



Mc c^iiwett In goftivate cftoductb fot ATARI 



i^TARl 800 48K 

ATARI 810 DISK DRIVE q 

ATARI 850 INTERFACE 

ATARI 410 PROGRAM A 

ATARI 1010 PROGRAM RECORDER 

EDUCATOR KIT ■- 

BOOKKEEPER KIT L 

PROGRAMMER KIT 



ENTERTAINER KIT q 

COMMUNICATOR KIT A 

HOME MANAGER'S KIT L 

EPSON FX-80 L 



48K RAM CALL 

1 6/32 EXPANDER 74.95 



B-KEY400 84.95 

SUNCOM JOYSENSOR 
34.95 

Touch Sensitive Joystick 



MOSAIC 

64K RAM 1 49.00 

32K RAM 87.95 

We Carry The Complete PERCOM Line. Call For Our Special EPSON Printer Package 

Call For Items and Prices. SUPER SPECIALS 

Prices effective May 1 tfirougti May 31 1983 

Centipede Galaxian Missle Command Paint 

$29.95 $29.95 $24.95 $29.95 

Cartridge Cartridge Cartridge Disk 

FREE* SOFTWARE AND ACCESSORIES 



Protector II 

$22.95 

Disk/Tape 



* COUPON PROGRAM 

The purchase of each program (with the exception of Super Specials. Atari, and APX) will earn you 1 COMPUTABILITY DIVIDEND 
COUPON (CDC). Save 1 coupons anij redeem them for your choice of any program we sell for S24.00 or less. Less than 1 
coupons may be redeemed for premium items as indicated. You pay only a S2 50 shipping & handling charge 



ATARI 

Conversational Languages-T .. 43.95 

Programming 2 a 3 - T 2195 

Music Composer -C 32.95 

My First Alphabet -D 26.95 

Touch Typing ■ T 19,95 

Home Filing Manager - d 37.95 

Mailing List - T 19.95 

Asteroids- C .- 26.95 

Caverns Of Mars ■ D 28.95 

Computer Chess - C 26.95 

Missle Command ■ C 26.95 

Super Breakout - C 26.95 

Star Raiders - C 32.95 

Assembly Editor - C 44.96 

Basic - C 44.95 

Macroassembler - D 65.95 

Microsoft Basic - D 65 95 

Pilot (Home Package) - C 58.95 

Invitation ToProgrammingl-T . 18.95 

Speed Reading - T 65.95 

Basketball ■ C 26.95 

Graph-It - T 15.95 

Juggles House ■ D/l 22.95 

Pilot (Educator) -C 97.95 

Video Easel - C 26.95 

Defender- C 32.95 

Galaxian ■ C 32.95 

Qix-C 32.95 

Dig Dug-C 32.95 

ET- C 38.95 

Timewise - D 23.95 

Atanwriter ■ C 61 95 

ADVENTURE 
INTERNATIONAL 

Preppie - D/T 23.95 

SAGA Adventures - D 31 .95 

Sea Dragon - D/T 27 95 

Stratos -D/T 27^95 

Bugoff ■ D7T 23.95 

Preppie I! - D/C 27.95 

Stone of Sisyphus ■ D 27.95 

Eliminator- D/T 20.95 



ANALOG 

Race In Space ■ D/T 20 95 

Sunday Dnver- D/T 23.95 

Crash Dive' • D/T 23 95 

Buned Bucks -D/T 23.95 

Titan - D/T 23.95 

Star Sentry - D/T 23.95 

DATASOFT 

Shooting Arcade - D/T 23.95 

Pacific Coast Highway - D/T . 23.95 

Micropainter ■ D 27.95 

Canyon Climber- D/T 23.95 

Fathoms Forty ■ D 27.95 



O'Rlleys Mine - D/T 27.95 

Rosens Bridgade ■ D/T 27 95 

Sands of Egypt ■ D 31.95 

Zaxxon ■ D/T 31.95 

Ivloon Shuttle • D/T 3195 

ON-LINE 

Jawbreaker • D/T 23.95 

Luna Leeper - D 23.95 

Ultima I ■ D 31 95 

Threshold - D 31 95 

Ultima II - D 44.95 

Mouskattack ,- D 27.95 

Frogger ■ D/f 27.95 



COMPUTABILITY DIVIDEND COUPON 

3 M Blank Disk - Box of 10 . . 


PREMIUMS 

, 27.00 or 10 CDC 


Wabash Blank Disks ■ Box of 10 

Flip 'n File Disk Holder 


, 21.00 or 8 CDC 
20 95 or 6 CDC 


Flip 'n File Cartridge Holder . , 


20 95 or 6 CDC 


Monitor Stand ... 


27 95 or 10 CDC 


VU ■ Case Disk Holder W/Lock 

Heavy Plastic Dust Cover 800 or 810 

First Book of Atari Software 1 983 


..24. 00 or 10 CDC 

. 12.95 or 5 CDC 

17.95 or 6 CDC 

17.95 or 6 CDC 

12.95 or 5 CDC 

.. 14 95 or 6 CDC 


Kids & The Atari 


The Atari Assembler 






.. 14 95 or 6 CDC 


The Visicalc Book Atari 


... 14.95 or 6 CDC 
12 95 or 5 CDC 


Atari Sound & Graphics . 


9 95 or 3 CDC 


Starfighter 


12 99 or 5 CDC 


Slik Stik. . .. 


9 95 or 3 CDC 


Extension Cable ■ 6 ft 


6 95 or 3 CDC 




. , 9 95 or 3 CDC 


Stik Stand 


6 99 or 3 CDC 


Suncom Tack II 


19 95 or 8 CDC 


Suncom Game Switch 


6 95 or 3 CDC 


Tl Adaptor ... ... 


1 2 95 or 5 CDC 


Kraft Switch Hitter Joystick 


1 7 95 or 7 CDC 




15 95 nr R CFiC. 





FIRST STAR BIG FIVE 

Cosmic Squeeze • D/T 23.95 Miner 2049'er - 

Astro Chase - D/T 23.95 



Cart 39.95 



We Carry Hundreds of Items for ATARI 400/800, Ask for Our FREE CATALOG. 



Mastcrcard/VISA 
Order Toll Free 



800-558-0003 

No surcharge for credit cards 



I ^H I 



I. D.S.I. 

Pool 1.5 - D 27.95 

Pool 400 -Cart 31.95 

Speedway Blast -Cart 31.95 

Juggler • D 23.95 

SIRIUS 

Bandits - D 27.95 

Way Out - D 31.95 

Repton - D 31.96 

Twerps • D 23.95 

Wavy Navy - D 27.95 

Blade of Blackpoole ■ D 31 .95 

SENTIENT 

Cyborg - D 27.96 

Goldrush - D/T 27.95 

BRODERBUND 

Apple Panic ■ D/T 23.95 

Stellar Sfi utile - D/T 23.95 

David's Ivtidnigtit Magic ■ D 27.95 

Star Blazer- D 25.50 

Track Attack - D 23.95 

Labyrintfi - D/T 23.95 

Serpentine ■ D 27.95 

Dueling Digits - D 23.95 

Ctioplifter - D 27.95 

Genetic Dnft - D/T 23.95 

AE - D 27.95 

EDU-FUN 

Call For Items and Prices 
MISCELLANEOUS 

Night Ivlission - D/T 23.95 

Jumpman - D 31.95 

Airstnke ■ D 31.95 

Castle Wollenstein - D 23.95 

Financial Wizard - D 49.95 

Pinball Construction Kit ■ D 31.95 

Pig Pen ■ D 23,95 

Baja Buggies - D/T 25.50 

Starbowl Football -D/T 25.50 

Ivtaster Type - D 31.95 

All Baba- D 26.50 

Jeepers Creepers - D 23.95 

Paint - D 33.95 

Kid Grid ■ D/T 23.95 

D ■ Disk T- Cassette 
C - Cartridge 

ATARI is a trademark of ATARI, Inc. 



In Wise. Call 

414/351-2007 



ORDERlNG\NfORMATION:Tooiderbymain.sendnnoneyorder. certified check, or personal cfieck (allow 14days to clear) to COIVIPUIAeiLlIY 
Include $2 00 shipping on all software orders Include 3% shipping on all hardware orders, nninimum $2.50. f\/lastercard and Visa please include cord 
number and expiration date Wl residents please add 5% sales fox. Canadian, APO & FPO software orders include 5% shipping, minimum $5.00. All 
L other foreign software, please odd 15% shipping, minimum S7 00 (US Funds only). Prices subject of change without notice. 



COMPUTABIL/7Y 
P.O. Box 17882 
Milwaukee. Wl 53217 



PAGES 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 




B 1 



^ 1 
A 1 ■ 1 



k\^»l 



n k 



■ UTi I ITi I _l M 

^i k i I k i L n k 



Dear Editor, 

In your recent A.N.A.L.O.G. 
Computing issue #9 a review of 
our Letter Perfect Version 3 was 
written by Tony Messina. 

The article had many 
comphmentary things to say 
about Letter Perfect and the new 
version. However, it did contain 
some inaccuracies in regard to our 
update poUcy. Anyone who has 
purchased and registered an 
earlier version of Letter Perfect 
may upgrade to the new version 3 
by sending us their old diskette 
and $30. In return, they will 
receive a new diskette, a new 
manual, and a new command 
sheet. Any individual who has 
purchased a backup diskette may 
hold the backup diskette until 
they have received the new 
version, and then send us the 
backup to receive an update of 
their backup. There is no policy 
that allows an individual who 
returns their old version to get a 
free backup of the new version. 

Sincerely yours, 

Kenneth L. Berry 

LJK Enterprises, Inc. 

St. Louis, MO 



Dear Sirs: 

We just bought an ATARI 800 
computer and were glad to find 
there was a magazine for ATARI 
owners. But we sat for hours pro- 
gramming your programs /Kn 
Adi'cntMre Game, The Halls of the 
Leprechaun King, and FiU'cr, not 
one of the programs work. I have a 
friend that has a computer she 
bought before we did and she said 
they had the same problem. We 
have since talked to some others 
and they all say the same thing. It 
is very maddening to sit for four 
or five hours putting programs 



into the computer and not having 
it work. We were going to sub- 
scribe to your magazine but not 
now. We feel that you should 
check your programs first before 
you put them in your magazine. 
We have checked and checked 
them and we did not make an 
error in typing them into the com- 
puter. If in the future we hear that 
your programs work we will 
consider buying your magazine, in 
the mean time we will not reccom- 
mend your magazine to anyone. 

Mr. Randall Beemer 

Flint, Michigan 

Dear A.N.A.L.O.G.: 

This letter is sent to thank Tom 
Hudson for giving us what I feel is 
the best game ever to appear in the 
pages of a magazine. It tops a lot of 
games I've seen on sale, too! I am 
speaking, of course, about FiU'cr 
Vj)! (Issue #10). 

I recently moved from a large 
city to a small resort town. Un- 
like the city there are no software 
dealers here, so I rely very strong- 
ly upon the printed page. (I had to 
subscribe to even get that here!) 
So I really appreciate when an ex- 
ceptional program such as FiU'cr 
Up comes along. Needless to say I 
am eagerly awaiting Mr. Hudson's 
next contribution to your fine 
publication, which by the way gets 
better with each issue. 

Very gratefully yours, 

Rudy C. Houghton 

Myrtle Beach, SC 

Dear Editor: 

I am glad to hear that the results 
of your readers poll generally 
agreed with my ideas and opi- 
nions. A.N.A.L.O.G. is the best 
magazine on the market that deals 
with ATARI computers in whole 



or in part, and it keeps getting 
better. I like the assembly- 
language games, and really 
enjoyed FiWcr Up!. However, 1 
found it very boring to sit through 
the beginning of the program 
waiting for the computer to check 
the lines every time 1 wanted to 
play the game. I tried making a 
cassette-maker program (ala 
Maniac or Harvey Wallbanger) to 
no avail, — as I don't know very 
much about assembly program- 
ming. However, the following 
changes will speed up the wait 
from 2 1/2 minutes to 1 1/2 
minutes. First type in the program 
as in A.N.A.L.O.G. #10' (to 
check for errors), then, when 
correct, make the following 
changes. 

2 6RftPHICS 18:PQSITI0N 3,5:? »6;"PL£AS 

E wait..,":for de=i to 50:next de 

5 Y=PEEK (559); POKE 559,0 
25 LINE=LINE+10:fi£AD DflT$ 
28 REM (delete this line) 
40 PR06J(PNTR)=CHR*(BYTE):PNTR=PNTR+l: 
TQTftL=TOTAL+BYTE:NEXT KlREAD CHKSUMlIF 
LINE=1710 THEN 70 

50 GOTO 25 

70 POKE 559, V:? "PRESS START TO BEGIN" 

80 IF PE£K(5J2?9}<.)6 THEN 80 

85 A=USR(ADR(PROGtJ,ADfiiPROG*)):£ND 

I hope the readers find this 
useful (unless someone has 
figured a way to make a cassette- 
maker program.) I really enjoyed 
Fill'er Up!, but it seems to me that 
once a game is over, the next game 
should start back on level I, not 
on the level where the last game 
left off. This can be frustrating, 
especially since pressing RESET 
results in "ATARI lock-up." 
Other than that, thanks, and keep 
A.N.A.L.O.G. coming! 

Sincerely yours, 

Jim Singer 

New Castle, Penn. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 9 



Tom Hudson: 

1 loved your P/M mover subrou- 
tine in issue 10 of A.N.A.L.O.G. 

How can it be changed to include 
MISSILES as well as PLAYERS? 

Jeff Stefanski 

Melrose Park, IL 

Your wish is our command. See 
page 29. — Ed. 

Dear A.N.A.L.O.G.: 

Issue number 10 is fantastic!! 
Your article on the ATARI 
1 200XL is the only full length dis- 
cription I have seen so far. 1 had 
heard some rumors about it, but 
nothing conclusive. 1 have an 
ATARI 800 and don't plan on get- 
ting a 1200XL in the near future, 
but I was excited to find out about 
the 800 's big brother! 

My friends and 1 entered Fill' Er 
Up! several days after getting the 
magazine. The time was worth it! 
It's the best game I've ever gotten 
for free. Tom Hudson, 
A.N.A.L.O.G. and ATARI are a 
great team!! There was only one 
thing 1 didn't like about it and that 
was the fact that you couldn't re- 
start it by pressing the trigger. This 
is a feature any game that does not 
use the keyboard during the actual 
play should have. So after looking 
at the listing, I thought how nice it 
would be if 1 could change it all by 
myself. .. Being a beginning 
assembler programmger, that's 
just what I set out to do! I suc- 
ceeded too! I'm including the 
needed changes. 

Old Code: 

CKSTRT LDft C0N50L 
AND ttl 
BME CKSTRT 

RELEA5 LDA C0N50L 
AND ttl 
BEQ RELEflS 



New Code: 

;fiU extra space 

NOP 
NOP 
NOP 
NOP 

;wait for release 



RELEAS LDA STRIG 
BEQ RELEA5 

;trigger pressed? 

CK5TRG LDA STRIG 
BNE CKSTRG 



By adding two lines to the basic 
program the new code can be 
installed. 



5 RESTORE 10:DATA 234,234, 

234,234,173,132,2,240,251, 

173,132,2,288,251 

65 RESTORE :FOR X=1225 TO 1 

238: READ N : PROG$ (X, X) =:CHR$ 

fN] :NEXT X 



Now you can have the freedom 
of sitting anywhere your joystick 
cord will reach AND restart the 
game without getting up! 

I really enjoy reading 
A.N.A.L.O.G.. It's a great maga- 
zine! I have every issue! The first 
issue I got on my subscription was 
number 5, but when the reprints 
of the back issues came out I 
ordereci numbers one through 4. 
And I'm glad I did, since they have 
been very helpful in getting the 
most out of my ATARI and 
because they are no longer avail- 
able!! 

There is one addition 1 would 
like to see in A.N.A.L.O.G. and 
that's a book review section. 
There are a lot of books out for 
ATARI'S and we need help in 
picking the good ones from the 
bad. 

This is the very first letter I have 
ever written to a magazine. And 
I'm glaci to have a magazine 1 care 
enough about to take the time to 
write to it (would THEM have 
been a better choice, since 
A.N.A.L.O.G. IS made up of 
people . . . Well gotta sign off now. 

Well gotta sign off now, 

Chris Gruenler 

S. Hamilton, MA 

We were glad you enjoyed our 
article on the 1200XL. The response 
from our readers was overwhelming. 
We were very fortunate to have the 
rjooXL in our offices months before 



it ivas available to other publications. 
Look for more information on the 
1200XL in future issues — and 
remember, when you want the 
"scoop" on new ATARI products, 
you'll see it first in the pages of 
A.N.A.L.O.G. Computing. 

Many people have been requesting 
back issues of A.N.A.L.O.G. 
Computing. I'm sorry to report that 
we have no remaining copies of any 
back issues. However, the 
forthcoming A.N.A.L.O.G. 
COMPENDIUM (see Editorial, 
issue 10) will contain the best games, 
utilities and educational programs 
from the first ten issues of 
A.N.A.L.O.G. Computing. The 
A.N. A. LOG. COMPENDIUM 
will also feature programs not 
published in earlier issues of 
A.N.A.L.O.G. Computing. It will 
be available to computer stores and 
bookstores the first iveek in July. 

Speaking of books, we are 
planning to include an up-to-date list 
and capsule review of all ATARL 
related books in our next issue. — ED 



ATARI' 

48KIIAM 

KIT 

BY 
MOSAIC ELECTRONICS 

Turns any Atari 8K or 1 6K RAM 

board into a 48K RAM board. 

Only 4 solder connections! 

Complete instructions and 

guarantee. 



guarantee. 

•** AVAILABLE ^ 

FORALlMlTED^i^E 






k^mosoic 

ELECTRONICS 

RO. Box 708, Oregon City OR 97045 
Phone Orders: 1-800-547-2807 



PAGE 10 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



JOYSTICK 

REPLACEMENT 

INSERT 




EASY WAY 
TO REPAIR 
YOUR ATARI " OR 
SEARS VIDEO " JOYSTICK 



Remove screws and pull 
oft bottom 





Pull out broken plastic stem 




Insert new replacement Replace botlom witti screws 

part now sit back ond enjoy 



Allow 

4 to 6 weeks 

for delivery 



$4 



35 Plus 65(t postage 



PAin 



& handling 



Name 



Address 



City 



State Zip 

J. E. KOCH & CO. 

P.O. Box 864, Durham N.H. 03824 

sorry no C.O.D.'s please 



Attention Programmers! 

A.N.A.L.O.G. Computing is interested in programs, 
articles, and software reviewsubmissions dealing with 
the ATARI 400 and 800 home computers. If you feel that 
you can write as well as you can program, then submit 
those articles and reviews that have been floating 
around in your head, awaiting publication. This is your 
opportunity to share your knowledge with the growing 
family of ATARI computer owners. A.N.A.L.O.G. pays 
between $30.00-$360.00 for all articles. All submissions 
for publication must be typed, upper and lower case 
with double spacing. Program listings should be pro- 
vided in printed form, and on cassette or disk. By sub- 
mitting articles to A.N.A.L.O.G. Computing, authors 
acknowledge that such materials, upon acceptance 
for publication, become the exclusive property of 
A.N.A.L.O.G. If not accepted for publication, the 
articles and/or programs will remain the property of 
the author. If submissions are to be returned, please 
supply a self-addressed, stamped envelope. All sub- 
missions of any kind must be accompanied by the 
author's full address and telephone number. Send 
programs to: Editor, A.N.A.L.O.G. Computing, P.O. 
Box 23, Worcester, MA 01603. 



Gentlemen: 

1 have been an avid reader of 
your magazine since the first issue. 
It has been interesting, informa- 
tive, and amusing. 

As of now, "Whither ATARI" 
is obvious. ATARI "whithered" 
to Taiwan. In these days of high 
labor costs, it became necessary to 
move production facilities to a 
location with lower labor costs. 
We all know that labor is the 
single most expensive component 
in the manufacturing process, 
right? WRONG! 50 days o( 
network advertising prior to 
Christmas was the single most ex- 
pensive component! 

ATARI (read Warner 
Communications) was concerned 
with how to cut costs, that was 
obvious. However, did they stop 
to consider how many of the 1700 
production workers would, if 
employed, but their computers? 
What about the people who do 



business with those 1700 former 
employees? How many ATARI 
computers will they be able to buy 
now? This kind of action has a 
"ripple effect" throughout the 
entire community. But it's still 
cheaper to build overseas, and 
you end up with a better product 
because the American worker just 
doesn't care to work as hard to do 
a good job. That's why SONY 
builds all their Trinitron color 
TVs for the U.S. in the U.S. It's 
also why HONDA builds all of 
the cars and motorcycles (above 
900cc) destined for the States 
over in Ohio. SONY and 
HONDA seem to know what 
American manufacturers have 
forgotten — we can build it here 
cheaper and better if we put our 
minds to it. It makes me wonder 
whether anyone in marketing or 
manufacturing at Warner or 
ATARI has a mind left to work 
with. 



Keep up the good work at 
A.N.A.L.O.G. — you're the best 
magazine around. 

Sincerely, 

Richard B. Roche 



In Issue No. 10 of 
A.N.A.L.O.G. Computing, 
we published an article by 
Greg Peck entitled "Magic 
Keypad." This article was 
originally intended for publi- 
cation in ANTIC Magazine, 
and is the sole property of 
ANTIC. We regret our error 
and apologize for any incon- 
venience. 

ANTIC is a magazine pub- 
lished for ATARI computer 
owners. For information, 
write to ANTIC, 600 18th 
Street, San Francisco, CA 
94107. 



New family fun and a new | , 

learning experience! 

JEWISH 

SOFTWARE 
FOR ATARI 





J L 




Davka Corporation introduces new software programs 
and games designed to give you more understanding of 
Jewish history and traditions. Outstanding scholars have 
combined their teaching methods with state-of-the-art 
computer techniques and graphics, to bring you and 
your family an exciting and important new dimension in 
Judaica for the home. If you have an Atari 800 computer 
with one Disl< Drive and 48K Memory, you're ready to 
start on a whole new adventure! 

Here are a few of the many programs and games 
which are available for your Atari computer Others are 
listed in our free catalog. 

HEBREW READING This individualized program is designed 
to teach the reading of Hebrew to those who have no prior 
knowledge of the Hebrew alphabet and/or those who are just 
building their basic reading skills. Number 101-1 $50 

THE GAME OF JERICHO In this action-packed arcade game, 
the player directs the blasts from Joshua's shofar to destroy the 
walls of ancient Jericho. His shots must be quick and accurate 
to penetrate enemy lines. One must be careful, though — the 
enemy is constantly raining down clusters of arrows. "Jericho" 
combines outstanding sound and colorful graphics — but to win, 



PROVERBS 

^..m 



one needs to be cunning, clever, and daring. "Jericho" is for chil- 
dren or adults. Number1400 $29.95 

ISRAEL GEOGRAPHY GAME As an "Israel Sherlock 
Holmes," the player uses historical and geographical "clues" to 
"deduce" the correct names of sites on the map of Israel. The 
game begins with a map of Israel drawn on the screen and 
divided into four regions. The player selects a region and an 
enlarged map of that section is drawn on the screen. A flashing 
cursor represents the "target" and the puzzle solving is set 
in motion. Number 200-1 $25 

PROVERBS Five hundred carefully selected Jewish Proverbs 
and Folk Sayings, taken from the Talmud, Medieval Hebrew 
Literature, and Yiddish and Hasidic sources, are presented in 
this program, indexed by specific categories. To view all the 
proverbs on any given topic, the user needs simply to type in the 
category he wishes to see. Number 600-1 $25 

JEWISH I.Q. BASEBALL "Jewish I.Q. Baseball" educates 
students in many areas of Jewish knowledge in an enjoyable, 
entertaining fashion. Players get singles, doubles, triples and 
home runs by answering questions correctly The runners, the 
baseball field, and the scoreboard are all portrayed vividly to 
make the action realistic. "Jewish I.Q. Baseball" is suitable for 
one or two players of all ages. Number 301-1 $25 



Please add $2 for each shipment for handling. 

WRITE FOR FREE CATALOG and to order any of the above 

software programs, MasterCard or Visa cardholders 

CALL TOLL-FREE 1-800-621-8227 

{In Illinois, call 1-312-944-4070) 



vavka 345 North Michigan Avenue, Suite 843, Chicago. Illinois 6061 1 



Atari is a Trademark of Warner Communications 



CORPORATION 



PAGE 12 






ISSUE 11 



FAIR£ 



On March 18, 19 and 20, the Sth Annual West Coast Computer Faire 
was held in the Brooks Convention Hall and Civic Center in San 
Francisco. The Faire was attended by over fifty thousand 
computer enthusiasts and hundreds of companies, representing an 
incredible diversity of products and services. 



Among the many publishers exhibiting at the show was 
A.N.A.L.O.G. Computing. Editor Lee Pappas and technical staff 
members Tom Hudson and Brian Mori arty jostled around for a peek 
at the latest software and hardware releases for our favorite 
computer (s). The "payoff" for this jostling is one of the first 
profiles on the West Coast Computer Faire to appear in print. 



There's no better place to start our profile than with ATARI. 
DIG DUG, E.T. PHONE HOME and the recently-released QIX were 
among the main attractions at the ATARI Home Computers exhibit. 
The "mother company" has also prepared a new word-processing 
cartridge called ATAFilWRITER (see review in this issue), and a 
very interesting 16K implementation of the LOGO programming 
language. ATARIWRITER should be on your dealers' shelves by the 
time you read this. Look for LOGO in August. 



Bill Wilkinson of Optimized Systems Software was demonstrating 
yet another new language far the ATARI. Called ACTION!, this 
advanced 6502 development system has a structure similar to 
Pascal and Algol, and is said to run &\t least 100 times faster 
than ATARI BASIC. The 16K cartridge includes a 12S-column 
program editor and a built-in compiler, and will sell for 
somewhere around ?il00. Also coming from OSS are enhanced 
cartridge versions of BASIC A+ and MAC/65, and a powerful new 
mai 1 /merge package. 

Rana Systems, a hardware company best known for their 
Apple-compatible disk drives, is entering the ATAF(I market m a 
big way with their announceme'nt of two 5 1/4 inch drives. The 
extraordinarily compact size and high-tech cosmetics of these 
products are almost as exciting as the prices: *399 for 
single-density and $549 for the doubl e -densi ty model. Rana 
drives have a reputation for outstanding reliability and 
performance. They should be available before the end of June. 



The friendly folks at Adventure International set up their 
famous "castle" display for the introduction of PREPPIE II,, a 
sequel to their best-selling arcade game. Datasoft was packing 
them in with the long-awaited home version of Sega's ZAXXQN. It 
offers impressive high-res graphics and extended fine scrolling. 
The 32K ZAXXQN disk faithfully recreates all of the action of 
the original; the cassette v€;rsion sacrifices a few features to 
fit in 16K. Also on display at the Datasoft booth was an 
underground digging game called O'REILLY'S MINE and the first 
spelling check program for the ATARI, SPELLWI ZARD. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 13 



^^Vden Software ■ 

P-9-.. 6hop:?pt\^.^"^^ 's^^°:^f- plenty or^.^'.^.^ts a.u^i;," ^ ^^ 
multiple scK^t ^'^' "^ith A £r^'""ing the trariff '^^ ^O"" vounr, 

Sirius Soft " °'"^^'"^ 

9^'^e called pLtm "^^^^ another ^K "^ ^^^i-" Pheno™ 

Screenplay, ^,ho=.f „,*^'^'«'enture for ^k °'^ SLACkpon, °" '^ Pair 

include OUNZHIN ,11^'^'''°^ of RAS" f^"^*^'^ ^^ forth;'' ''^'""ICAL 

^^ri^- includes a ;""•' ""'^ ^HE w?LnF°'^~P^^ying reV,"'"'"^ fro^ 
different. ^ Randomizing .u^'^ff' Each adventu^r. '^^ ^ ^ 

u,-,j: '^ game 

"^isplav '^°'"P had a brn^^ , 

^-' than^^^,^'^^,-<^ a verTusabl": °' ^^^^'^ boo.s and 

f°^ better fnx^ ^^^^°^ has reva™ ""^^ ^"-entati on ^ ^^^tware on 

package and a nr^" '=°-'^-^i^intT '^"^'^ ^■AMD?s,.°l™^'^^ ^°- 

-w name: R^MPotEn'!:,^:'' ^" ^^^-ctr^^^e:^^*^^^ 

f^inaliv cw 

products- rr°^t Corporation 

«ss than *60. ^^"- Both products .^^'"^^^ bi/'e 
Th expected to 

Jhere you have it ' 
annual Wp=v- r- a quir-i- ^ 

'-"'e issues of 




THE WEST COAST COMPUTER FAIRE 




Arcade fans had to wait in line to play Datasoft's Atari 
version of ZAXXON. 




The impressive Synapose Software display featured a 
separate TV monitor for every product. 





The ATARI exhihit was mobbed with fans eager to 
sample the new i6K ^ame cartridf^es. 




Bi(5ines5 was brisk at the Educational Software booth. 




Game fanatics peered over shoulders to check out the 
cominji attractions from Sirius Software. 



The new Rana disk drives for the ATARI attracted lots of 
attention. 



If you are serious about personal finance... 



Budget Forecast- 26 expense categories 
Check Entry- easy data entry- scan & modify 
26 major & 36 sub-categories -information blocl< 
Check Search -single or multiple parameters - 
(up to seven) to search entries 
Tabulations -detailed expense vs. budget 
comparisons by month, year-to-date, category 
Bar Graphs- screen displays in graph form 
expenses vs. budget-by month or category- 
printing with graphic capable printers 
Check Reconciliation -fast clearing of resident 
checks & deposits, complete summary report 
Checkwriter- prints your custom checks 
Printouts- most popular printers 
Multi-Colored Graphics • Audio Enhancements 
7 Utility Programs • User- Friendly Operation 
Easy To Use Instruction Manual • Audit Report 
Handsome Tinted Plastic Storage Case 




RF^RLDE 



COMPUTE! 

me Leodng Magannr « Home, Wucahonal, And Becf«itionol Comp«/tng 

In a feature editorial. 

"If you want lo use a finance system, but 
don't want lo spend several days trying to 
learn how to use one, then A Financial 
Wizard by.Computari may be just what 
you need." 

"The illustrated manual that comes with 
this program is clear, direct, and very 
thorough." 

"It appears that this finance system was 
designed to achieve the best and most 
comfortable working relationship between 
the user and the program." 

"The check entry routine is the most 
attractive feature of this finance system. 
Data prompts are very clear and the cate- 
gory item names are displayed at all times 
during data entry for your convenience." 

"The file search capabilities of Ibis 
program are superior. You are offered 
seven ways to look up the checks." 

"The system is disk intensive. All data is 
saved automatically and immediately 
following all routines that either enter data 
or modify it." 

"Scanning your entries is made possible 
by pressing START. You can see records 
very quickly this way." 

"This is an excellent finance system- 
entertaining, accurate, and fun to use." 

Computari's 

A Financial Wizard 1.5 

The logical choice. 

The system is designed for Atari computers having a minimum of 32K 
and operating from a disk drive. The cost is only $59.95 plus $3 for 
handling/postage. 

If your dealer does not have A Financial Wizard . . . Telephone orders 
are accepted on Mastercharge or Visa credit cards. Mail order must be 
accompanied by check or money-order or credit card #. 



CDMPLITLB^E 

TK UMJJ\t KW triRI (OWn^TIB OWNERS 



Analog magazine in a 
eompreiiensive study of 
personal finance systems 
for Atari 'computers. 

"A Financial Wizard from Compulari is by 
far the best of these programs and will be the 
standard of comparison for the others." 

"The check entry mode is easy to use. . . " 

"The way a Financial Wizard handles your 
tabulations is excellent. You can chart your 
actual expenses vs. your budget by month, by 
category or year lo dale." 

". . .where il really outshines the rest is in the 
check reconciliation." 

"In effect it gives you your bank statement on 
the screen, a complete list by month of all 
your checks and deposits." 

"A Financial Wizard has one disk that does 
everything. . ." 

"Graphics, while really not a factor in Ihe 
quality of programs of this type, do make 
your budgeting chores a little more plea.sant. 
Again A Financial Wizard comes out on top." 

"Everything about this program is excellent. . ." 



Antic 
^ Tt... ATARI Rr«.u... 



In a Report from Antie. 

"Like most Atarians, I am captivated by 
the graphic, color and sound capabilities 
of my machine. Nothing quite discourages 
me more than lo boot up an applications 
program (personal, business, etc.) and lo 
be presented with the standard graphic 'o' 
white characters on a blue screen. 

Of course Ihe usefulness and effectiveness of 
a program Is of primary importance. How- 
ever, enhancing Ihe dullest of applications 
programs with some of Atari's charms, is a 
great asset. A Financial Wizard, a personal 
finance program by Computari's Bill 
McLachlan, is an excellent example of an 
applications program that integrates many 
of Ihe Atari's features into a well conceived 
and executed program." 

"The use of color and sound in the data 
input prompts and error checking routines 
are so well done that it's quite simple to 
boot up Ihe disk, follow along with the 
very clear documentation, and be 'up and 
running' in short order." 

"I give A Financial Wizard high marks in 
ease of use, documentation and perfor- 
mance. If a disk-based home finance 
package is in your future. The Wizard 
should get serious consideration." 



Dealer inquiries invited, 
•trademark of Atari Inc. 



OK residents ad 4% Tax. 



Exclusively thru J 



OPJ LINE 



(405)751-7925 



COMPUTER CENTERS of DKC " 



10944 North May, Oklahoma City, OK 73120 

CHECK ENCLOSED D VISA U MASTERCHARGE 



NAME (Print). 
Address 



City _ 
State 
Card tt 



Zip. 



Exp._ 



Signature. 



PAGE 16 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



C: CHECK 



16K Cassette 



CHECK Program by Istvan Mohos 
Cassette version by Tom Hudson 

Well, cassette fans, here it is! a checksum program 
for use with your ATARI 410 program recorder. 
A.N.A.L.O.G. has been using a program called 
D:CHECK since issue #8, but it could only be used 
by disk drive owners. This program, based on Istvan 
Mohos' program "D:CHECK," will allow cassette- 
bound readers to verify that programs typeci in from 
A.N.A.L.O.G. were entered correctly. 
The Program 

When D: CHECK was submitted to 
A.N.A.L.O.G. for publication, it was intended to 
be used only with the ATARI 810 disk drive. It could 
not be used with cassette because it required three 
separate "passes" through the BASIC program being 
checked. This is fine when using a disk drive, which 
is a "random access" device. A disk drive can read a 
file of stored information any number of times 
without the user even noticing. A program recorder, 
on the other hand, is a "sequential" device. If a file 
must be read several times, the user must rewind the 
tape to the beginning of the file each time it is needed. 
This is, to say the least, a cumbersome operation. 

In order to adapt D:CHECK for cassette use, a 
prime consideration was to make the check process a 
one-pass operation. C:CHECK will read through a 
program which has been LISTed to cassette one time 
and produce the checksum data on either the screen 
or a printer. 

T6 make life easier for the A.N.A.L.O.G. staff, 
CtCHECK will produce the same checksum data as 
DrCHECK, eliminating the need for separate 
checksum tables. 

Type the C:CHECK program into your 
computer and LIST it to tape. Check data has been 
provided so that you can use C:CHECK to check 
itself. Follow the instructions below. 

Using CrCheck 

When entering programs from A.N.A.L.O.G., 
you can use C;CHECK to make sure you typed 
them in without mistakes. The procedure is as 
follows: 

1 ) After the program is typed in, LIST it to tape by 
typing LIST "C". 

2) LOAD and RUN C:CHECK. 

3 ) C:CHECK will ask if you want the output to go 
to the screen or to a printer. Type "S" for screen 
or "P" for printer and press RETURN. 

4) Enter the issue number in which the program to 
be checked appeared, and press RETURN. 



5) Position the tape to the beginning of the 
program that is to be checked and press PLAY 
on the program recorder. Press RETURN. 

6) C:CHECK will begin reading the program from 
tape and generate a checksum table. This table 
should match the C:CHECK/D:CHECK data 
listed after the program in the magazine. Each 
line of the checksum table is a DATA statement 
representing 15 lines of the program being 
checked, plus a total of the 15 lines. The line 
number of each DATA statement is the number 
of the first line in the group of 15 lines. For 
example, in the following check data line: 

100 DATA 12,3,200,126,60,45,344,455,452,54, 
889,344,10,1,56,3051 

The line number 100 tells that the first line in this 
group is 100. The value 12 represents the checksum 
of line 100, 3 is the checksum of the first line after 
line 100, 200 is the checksum of the second line after 
100, etc. 3051 is the total of the 15 lines in the group. 
If the value 889 does not match the magazine's 
corresponding value, the tenth line after line 100 was 
typed incorrectly. Note all such errors. When 
C:CHECK ends, type NEW, ENTER your program 
from tape and correct the lines that are in error (if 
any). When these are corrected, you have a perfect, 
debugged copy of the program! 

That's all there is to it! GCHECK should make 
finding those bothersome typos much easier, and 
allow you to enjoy A.N.A.L.O.G. programs much 
faster. D 



108 REM [H:i<Ha DEBUGGING AID 

BY ISTUrtN H0H05 
110 REM VERSION 2 MODS AND CASSETTE 
120 HEM VERSION BY TOM HUDSON 
138 GRAPHICS 8:? :? "This run Will LIS 
T data statewents to the screen or 

printer ." 

148 ? :? "This DftTA is created by eual 
uating each character of a user pro 

graH, LISTed to tape.":? 

150 DIM GUT$tlJ,lStl28),CR$(l) 



168 ? "OUTPUT TO SCREEN OR HRINTER";:! 

. — 5T>"S" " 

HEN 160 



HPUT OUTS:IF 0UT$' 



ftND 0UTS<>"P" T 



178 IF OUTS:="S" THEN OPEN K2,8 ,0 ,"E ■." : 

GOTO 20e 

188 CLOSE tt2:? "QREADY PRINTER AND PRE 

SS |;mi|;i:i"j :INPUT CRS 

198 TRAP 18e:0PEN «2,8,0,"P:" 

290 ? :? "ENTER ISSUE NUMBER"; : TRftP 20 

0: INPUT ISSUE 

210 ? :? "READY TAPE AND PRESS l:l*<ll:3:i " 
; :OPEH ttl,4,8,"C:":? :? 



220 Z-B:LIHEC0UNT=Z:PLIN=Z:K-2 

238 TROP 34e:INPUT ttl , IS ; LINECOUHT=LIN 

EC0UN7+l:LIHUM=yftL(lStl.53} 

240 MLCK=MLCKHH:IF MLCK>1 fiHD NLCK<16 

THEH 298 

258 IF LINECOUHTzl THEN 288 

268 ? tt2;T0TftL:NLCK=l 

278 IF 0UTS="5" THEN PJLIMnPLIH+l : IF PL 

IN:il8 THEN ? "PRESS UTanr-Tl TO CONTINUE 

"; .-INPUT CR5:PLINre 

280 TOTflLrZ;? tt2jLINUM;" DflTfl "; 

298 CHK5UM=Z;IF ISSUE>9 THEN K=2 

380 FOR 1=1 TO LENCIS3 :PR0DUCT=K*ft5C(I 

SCI,I3) :CHK5UM=CHKSUM+PR0DUCT:K=X+l:IF 

X=4 THEN X=l 
318 HEHT I:CHK5UH=CHKSUM+K»155:K=X+i:I 
F H = 4 THEN K::! 

328 CHK5UM=CHK5UM-1888*IMT CCHKSUM/1088 
) 

338 ? «2;CHKSUM;","; :T0T0L=T0TflL+CHK5U 
M:GOTO 230 

340 CLOSE ttl:IF LINECOUNT=Z THEN 378 
350 ? tt2;T0TftL 
368 CLOSE «2:END 

370 ? "HE":? "Voup typed-in prograH wa 
5 not properlyLISTed to tape." 
380 ? :? "Please LIST your prograw to 
tape, thenRUN ";CHRS 134} ;"CHECK";CHRS{ 
34J;" again.": CLOSE tt2:CLR :END 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 

108 DdTfi 198,759,11,135,191,594,198,88 
6,763,467,931,100,465,572,107,6297 
258 DftTfi 764,922,11,168,375,783,384,25 
9,534,898,875,136,732,361,7114 




1:SO 



ITS ABOUT TIME 

by G. Herzenstiel 
Can your child read both clocks on the right? Many 
children will go out of their way to read a digital clock 
instead of trying to read the standard clock In this 
program your child can learn to read a standard clock 
along with a digital clock 

• Two learning units and a game 

• Requires 1 joystick 
Recommended for grades K-2 

ATARI cassette, 1 6K $20 00 

•ATARI disk 24K $25.00 

BULLS and CLEOTS 

\=:^(7^^^ t>y B- Belian 

^^ -rtTA game that tests your logic against the computer. Can 

l^ you enter the four digits that the computer is thinking of 

in the correct order? The computer will give you clues 

after every entry. This "mastermind" type game is a 

challenge to young and old alike 

• Plays on three different levels 

• Play with a friend (computer chooses digits) 

• Play against the computer feature 
Recommended for ages 9-90 

ATARI cassette, 32K $20.00 

ATARI disk 32K $25.00 kf' 



.00^ *^ 



^.H.E.S.I.S. 



P.O. Box 147 
Garden City, Ml 48135 
(313)595-4722 

Write for free catalog of ATARI 
and APPLE software. 



Please add: 

$3.00 shipping/handling 

$1.50 CO.D, charges 

To Order Call: 

1-800-3540550 

(VISA, MASTERCARD, CO.D.) 






RADICAL SYSTEMS™ proudly presents 



Cartridge Maker™ 

EPROM BURNER for the ATARI® 800 

• Make your own cartridges for the ATARI'", on the ATARI™. 

• Backup cartridge ROlvi's. 
'"Burn your own code. 

• Programs single voltage 2K or 4K EPROMS 
- 2732,2732A,2532,2716(2516) 

• Plugs into right Cartridge slot. No cabling required. 

• Stands alone or can be used with asseivibler/editor Cartridge, DOS, 
or AWIAC. Required memory 16K. 

• Also available EPROM cartridge boards which accept either 2532, or 

2732 EPROMS (Without EPROMS). 

• • • • NEW PRODUCT FROM RADICAL SYSTEMS - BETLJUZ JAZZ MUSIC BOX • • • • 

This is a music program that automatically generates over 50000 songs using a sophisticated computer algorithm written in ATARI 
BASIC and machine language. 

In the "automatic" mode, the program synthesizes a melody, harmony, snare drum, and bass part for each of the 50000 songs. 

The program is also capable of providing a computer arrangement of user melodies. In this "manual" mode, the user "plays" his 
melody on the ATARI keyboard and the program provides a harmony snare drum, and bass part to arrange the user melody 

Since the program source code is documented and has experiments that show how to change the automatic song generation, the 
program is an excellent tool for experimenting with music synthesis. Program requires at least 32K of memory and 810 disk drive. 




RADICAL SYSTEMS'" 

2002 colice Road, S.E. 
Huntsville, Alabama 35801 

(205) 539-0521 



Name 



Address; 
City 



State 



Zip 



CHECK, or MONEY ORDER 



Cartridge Maker'" $79. ea. 

EPROWl board $20. ea. 

BETUUZ $20. ea. 

qty. 




\Ne have over 

1000 Educational Programs 

tor use on your 

Atari 4001800 Computers' 



You and your family will enjoy 
learning in your home when you 

Stop 

Playing ^th 
Your Atari 



All along you've heard there isn't much of a 
selection of low cost microcomputer course- 
ware. Well, do you want to learn Physics, 
Psychology, or Philosophy? Accounting or 
Auto Mechanics? Sociology, Supervision or 
Statistics? Economics or Electronics? How 
about English as a Second Language? Would 
you like to teach your children Math or Read- 
ing? If you do, then we have the educational 
programs for you— and at affordable prices. 

It's true there aren't many companies that of- 
fer full-length courses in subjects other than 
reading and arithmetic, and what is offered 
seems to be drills, tests, games, or simula- 
tions. What you really want is a course that 
covers the subject with, say, 16 full-length 
lessons called tutorial programs, where you in- 
teract with an expert programmer backed by a 
staff of experts. That's exactly what we have. 

ASK THESE QUESTIONS 

Why haven't you heard of us before? We're a 
public company that's been trading over the 
counter for 16 years. We've been developing 
interactive learning systems since 1957. We 
sell hardware and software for interactive film, 
slide, video and computer learning to the 
educational field, vo-techs, industries, military, 
and several state and federal agencies. Our 
programs are used in all 50 states and even in 
some foreign countries! In 1 975, we started to 
convert to the Talk & Teach Computer-Assisted 
Instruction (CAI) System, licensed Atari to use 
it in 1977, and in 1981 licensed Radio Shack 
to use our Talk/Tutor System. So, why haven't 
you heard of us? Frankly, we've kept a low pro- 
file. Until now. 

Is there something wrong with our software? 
Well, we don't ask you to enter your name so 
we can drop it info some later text. We don't 
ask you to type in your answer and refuse to 
accept it if it's not spelled just right. And, we 
don't branch around a lot when you make an 
error. Our programs simply let you know if 
you're wrong by proceeding only when you 
select the right multiple-choice answer. 

This proven learning-by-positive-reinforce- 
menf method lets you proceed quickly and 
smoothly through the programs, without a lot of 
cute tricks. But, if you're a devoted com- 
puterist or game freak you may be disap- 
pointed at the lack of motion in most of the pic- 
tures, or our special visual effects. We have 
some dandies, like the mushroom cloud that 
rises over Hiroshima in our History series, but 
your learning is not distracted by needless 
special effects. 

OVER 1000 PROGRAMS 

We have 64 courses of 1 6 half-hour pro- 
grams: 1024 programs! All are easy-reading. 



upper-and-lower-case. All are in Atari color. All 
are illustrated by frequent graphics, composed 
of special and regular characters. And, best of 
all, every frame of every program is accom- 
panied by high-quality, full-time audio narration 
by professional voice talent. David Stanton, 
James Mathers, Pam Barrymore. Recorded 
and played back, not synthesized or digitized! 

— If your child is having trouble with Reading or 
Math, or if he or she is exceptional, and 
could benefit from professionally program- 
med lessons or courses, then you need our 
educational programs for your Atari 400 or 
800 to help your child. 

— If you want to build your math skills, we have 
programs on Numbers and their meanings. 
Addition, Subtraction, Multiplication, Divi- 
sion, Fractions, Decimals, Percents, Angles, 
Graphs, Word Problems, Algebra, Statistics. 
There are ten series in all, 160 math pro- 
grams. Again, all with color, pictures, and a 
friendly tutor's voice— all the time. 

— If your verbal skills need polishing, try our 
Talk & Teach programs on the alphabet, 
spelling skills, and every level of vocabulary; 
Sight Words or Learn by Phonics; develop 
Reading Comprehension skills from stories 
and articles. There's even a series on the 
Great Classics. 

— For self-development, try a 16-program 
course in Economics or Psychology. Or 
Supervision, Sociology, Counseling (Per- 
sonal, School, or Employee), Writing, 
Business, Philosophy, Government, Worid 
History, U.S. History, or Accounting. 

— For vocational skills, study our 16-program 
courses in Electronics, Fluid Power, Auto 
Mechanics, Shop, Carpentry, Construction, 
Meat Processing, Military Skills (64 pro- 
grams), and there are many more. 

YOU HAVE WHAT IT TAKES 

You'll need your Atari 400 or 800, and the 
Atari Cassette recorder. And to present the 
Talk & Teach programs you need the Educa- 
tional System Master cartridge: it's $25 from 
us, if you don't have one. 

We say these courses, which are recorded 
one program per side of C20 to C30 (half 
hour) cassettes, are the equivalent of a 
chapter, or perhaps an hours lecture. We've 
been told that by studying our Economics or 
Psychology course, a student could pass a 
secondary or college test for credit. Many who 
have such credits never learned all that's in 
these courses. And while some of our courses 
have 1980 copyrights, most are 1981 and 
1 982. In U.S. History, for example, you'll learn 
about America's foreign policy during the 



Falklands crisis as well as that in the Mideast in 
1982. And we're putting this information a( 
your fingertips. 

Not sure whether you agree more with Ra- 
tionalists or Existentialists? Do you commit 
logical fallacies? Try our Philosophy course. If 
you're not sure about neurosis or psychosis, 
classical or instrumental conditioning, then you 
need our Psychology course. Just how in- 
dependent is the Federal Reserve? Get Eco- 
nomics, Program 12. Confused about the 
changes in traditional roles of political parties? 
It's Government 5. And let our tutor tell you pa- 
tiently and cleariy about measures of disper- 
sion and central tendency. Our Statistics goes 
through F tests. We even have 1 6 full-length 
audio-computer programs with Spanish words 
and phrases. 

Remember, these are all for your Atari! Yes, 
we've done programs for TRS80 Model I, III, 
Color, for the Apple and T. I. But that's another 
story. 

Would you like to do something more than 
play games on your Atari? Tired of squeaks and 
robotics and want to hear a human voice? Do 
you want to further your education or help your 
children along in theirs? Now you can. For just 
$9.90, we'll send you one cassette with 2 pro- 
grams from the course of your choice, 100% 
guaranteed to work in your Atari, and you can 
try us out. Better yet, get one full course of 1 6 
programs on 8 cassettes for only $59.90. For 
full documentation, 32 pre-post tests, fancy 
binder, 8 cassettes with 1 6 programs of the 
course you want, send $79.00. That's less 
than books and tuition for most college classes. 
And we offer a 1 day, 1 00% exchange allow- 
ance. Does your alma mater? Send us your 
check, or call us at (405) 288-2301 with your 
Visa/Master Card number. We'll send your 
educational software pre-paid. Please allow 1 5 
days delivery. Or see your Atari dealer. He 
may have some of our courses in stock. 
You've got nothing to lose but your games! 




DORSETT 

Educational Systems, Inc. 



P.O. Box 1 226, Norman, OK 73070 
(405) 288-2301 '^ 



Ata/i <s a trademark ol Atafi. Inc Atari 400 w>d Ala 
irademarKs ol Atari. Inc AD relerences sFkhjU be a 



800 are 
I noted 



n 



■PSnetary Machine Intelligence is based on the concept that 
computer programs should accomplish the job they are in- 
tended for in the most technically sophisticated manner 
possible. But injected here must be the ergonomic equation, 
where man and machine function together, or as most pro- 
grammers call it, "user friendliness". 

PMI backs all its products with a 1 year limited warranty 
against defects in material and workmanship under normal 
use. Should any disk fail due to such defects within the 
warranty period, it will be replaced or repaired upon 
receipt of the damaged disk. After the 1 year warranty PMI 
will replace any of its disks that fail due to such defects for 
a service charge f or an addi tional year. (For any disk 
returned, a warranty card must be on file at PMI.) 

If you're tired of promises and programs , 
that tell you they'll copy everything, ^^ 

OEAIERIHOHIBIES ~" ^ 
INUiTED. 



(and can't even copy themselves) then PMI has a pair of . 

programs for you. The Replicator Series can copy any data •;• 
from any disk perfectly. . . everytime. It gives you the ability 
to start at any sector you wish and stop at any sector you 
wish. If it encounters a bad sector it displays the bad sec- . 
tor number and the error code on the display screen. It also 
leaves that sector blank when writing to the duplication disk. 

The Replicator Series encompasses the PMI philosophy 
that a computer program should work for you, not against 
you. Simplicity in operation and technical sophistication 
are fused into a program designed for everyone. Although 
technically different, both programs will meet or exceed 
your expectations of their ability to duplicate every disk in 
your library. 

Replicator One requires 32K basic 

• •, . * ■ cartridge and one disk drive. 

Replicator Two requires 32K baiid'^**'^ 
cartridge and two disk drives. 



$4S.Ca 



fl«i^ 



BRINGING COMPUTERS DOWN TO EARTH. 



If you have written a program that 
is technically sophisticated and also 

"user-friendly", PMI would be In- 
terested in publishing your work. For 

Information on how to submit your 

material write to: PMI, P.O. Box 2895, 

Winter Park, FL 32790-2895, Or phone 

(305) 644-3822. 



PMI, 2500 Lee Road, Suite 210 P.O. Box 2895, Winter Park, FL 32790-2895 

D Replicator One n Replicator Two 

Quantity at $34.95 plus $2.00 S.&H. (Florida residents add 5% sales tax) 

D CHECK ENCLOSED OR IVI.O. D C.O.D. 



NAME (Print) 

Address 

City 



. State. 



- Zip_ 



Allow 3 weeks for personal checks to clear. 



THE REPUCATOft SERIES IS NOTINTENBED TO DUPLICATE COPYRIGHTED MATERIAL. 



ATARI IS A REGISTERED TRADEMARK OF ATARI. INC. 



PAGE 20 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



BASIC PROGRAMMING TECHNIQUES 



16K cassette 24K disk 



by Thomas M. Krischan 



There are two fundamental principles in good 
programming technique: function and cosmetic. 
The functional principle is the first to be mastered by 
the novice. It involves the duty portion of 
programming, which covers these questions: 
Does the program work? 
Is it error free? 
Is it coniorehensive? 

The cosmetic principle is usually overlooked by 
the novice programmer, and too often by even the 
advanced programmer. It addresses a less visible, yet 
equally important portion ot the program: 
Is the code structured? 
Is it readable? 
Are sufficient comments embedded into the listing 
to document the work properly? 

The failings of the programmer to address this 
second principle are not necessarily the fault of the 
programmer alone. Most programming courses and 
text books neglect this subject area. The intent of this 
article is to outline the cosmetic principle. 

A good program contains the following cosmetic 
elements: structure, readability, and internal 
documentation. A program listing, like a magazine 
article, is subdivided into smaller logical units of 
composition. Articles refer to logical units as 
paragraphs, programs refer to logical units as 
subroutines. Paragraphs are not magically created by 
indented openings, likewise, subroutines are not 
magically created by adding a RETURN statement. 
Your subroutine should therefore mark the logical 
subdivision of the function of the whole program. A 
subroutine must be complete in itself. Ask these 
questions of each subroutine: 

Is the subroutine unified? 

Does it hanf;^ together and read smoothly? 

Is the function of the subroutine adequately developed? 

Another element to consider is if the flow of the 
program is readable. Unlike a magazine article, logi- 
cal subdivisions do not have to be read sequentially. 
Furthermore, some subdivisions may be read from 
other subdivisions. Proper programming technique 
requires that the vast majority of the program is read 
sequentially. This technique is referred to as the 
"top-down" approach. The alternative approach to 
this is entitled "spaghetti" programming. Spaghetti 
programming has nothing to do with the nationality 
of the programmer. Rather, it describes the flow of 
the program; a bowl of spaghetti. An excellent 



exercise for mastering structure and readability is to 
outline a program listing. Draw a bracket around 
each logical subdivision, connect the brackets with a 
line to indicate flow, and sketch an arrow on the line 
to designate direction. Figure 1. illustrates a program 
which has good structure and readability. Figure 2. 
illustrates a program with little structure and poor 
readability; spaghetti programming. 

Figure 1. Good structure and readability. 




Figure 2. Poor structure and readability. 



rC 



■4: 



ISSUE 11 



A.N.A.L.O.G, COMPUTING 



PAGE 21 



The last element in our outline is internal 
documentation. Documentation can be in the form 
of remark statements or self defining code. Since the 
BASIC language features English-like statements, I 
much prefer the latter option. Figure 3. is a listing of 
BASIC programming statements which use variable 
names so appropriately that further remarks from 
the programmer would seem redundant. 

Figure 3. Self defining BASIC statements. 

POKE CURSOR, OUT 

SETCOLOR, BACKGRND, GREEN, DARK 

WRONG=TOTAL'RIGHT 

GOSUB NOISE 

GOTO ERROR 

The fundamental principles of functional and 
cosmetic programming technique are not without 
their conflicts. For example: 

Assigning numeric constants in GOSUB, GOTO, 
SETCOLOR, PEEK and POKE commands will 
quickly use up the 128 available variable names 
offered by ATARI BASIC. 

Long descriptive variable nan\es require more 
space than do single letter variable names. 

Modular design may waste time; GOSUB 
commands are slower than GOTO commands. 

Frequently used subroutines are addressed most 
quickly if they reside closer to the top of the 
program. 

Despite the conflicts, compromise can usually be 
reached. The good programmer can balance the 
benefits of functional programming with the desire 
to create an internally appealing program listing. 

The sample program illustrates such a balanced 
approach. Figures 4-7 are the external documen- 
tation which accompany the program. The program 
functions as an education tutorial about natural 
events which occur in our native enviornment 
during the spring of the year. Because of the structure 
and readability of the program, questions can be 
easily added or changed to suit your needs. One 
word of advice; after running this program with its 
original contents, if you have not managed to get at 
least 50% of the questions correct, perhaps you 
should get up out of your chair and view the world 
from the other side of your window! D 

Figure 4. String Variables. 

ASK1$ - Questions. 

ASK2$ 

TELL1$ - Supplemental information. 

TELL2$ 

TELL3$ 

GUESS1$- Possible answer. 

GUESS2$ 

GUESS3$ 

Figure 5. Numeric Variables. 

RIGHT -The number of questions that were 
answered correctly. 



WRONG -The number of questions that were 

answered incorrectly. 
TOTAL -The total number of questions asked. 
PITCH -The pitch value for a sound. 
TIME -The time delay of a programming loop. 

Figure 6. Numeric Constants. 

LIGHT -Color luminance. 

MEDIUM 

DARK 

GREEN -3 Color hue. 

RED 

YELLOW 

BLACK 

BLUE 

WINDOW -Color register. 

TEXT 

TEXTCAPS 

BACKGRND 

BACKTEXT 

VOICED -Sound generation. 

PURE 

NORMAL 

SMALL -Graphics mode. 

AVERAGE 

LARGE 

CURSOR -Hardware memory location. 

ATTRACT 

UNTOUCH 

RESPONSE 

KEYBOARD 

OFF -Reset memory locations. 

OUT 

PAUSE - Subroutine location. 

NOISE 

BUZZ 

TWINKLE 

WAIT 

QUIZ 

ERROR 

SCORE 

INTRO 

Figure 7. Major Program Subdivisions. 

I -7 General information. 

II -99 Main program; calls all supplemental 

subroutines. 
100 -199 Quiz subroutine; generates questions, 

possible answers and supplemental 

information. 
200 -299 Score subroutine; displays number of 

correct and incorrect responses, and 

remarks about the score. 
500 -560 Data for closing remarks. 
1000-2490 Data for questions, possible answers, 

and supplemental information. 
5000 Noise subroutine; used for correct 

responses (up tone). 
5050 Buzz subroutine; used for incorrect 

responses (down tone). 



PAGE 22 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



5100 Pause subroutine; pauses display for a 

few seconds before continuing on. 
5150-5170 Wait subroutine; waits display for a 

keystroke. 
5200-5299 Twinkle subroutine; flashes text for 

additional attraction. 
5300 Error subroutine; when a wrong key is 

pressed. 
6000-6099 Intro subroutine; draws first display 

screen. 



1 RFM , 06TIF: Of^CEMBER 1^8? 

Z REM , AUTHOR: THOrWS M. KRTSCHOH 

^ REM , TECHNTMETRICI C0M5I. . 

41 REM . 646 5. <J2nrf 5t - 

5 REM , WEST 0LLI5, WI, 53^14 

6 BEW , .l-C4141-476-4!>ll 

7 REM , 

It REM r 

12 REM . 

28 HEM , ««# MfllH PROGROM «*» 
?.2 DIM GMESSlSteO) ,GUE552S(40J ,GUE5S35 
C40) , ftSKlS 140 J . ft5K2S C801 j TEL Li S t485 , TE 
LI.2S(40> ,TELL3S(128J 

23 RI(;HT=0:WROMG = 8:TOTOL=O 

24 LIGHT=tO : MEDIIIM=6 ; ll>ftRIK=0 : GREEM=:12 : R 
ED = 4 ; VELLOM^l : BLftCK::8 : BLIJE=7 

25 PftUSE=5ie8:M0ISE=500a:BU7Z=5e50:TMI 
MKLE = 52e0 : WflIT=5 J 58 : 8l)I^=l0e : ERROR = 530 
: 5C0RE = 200 : IMTRO=6008 : ST0RT = 23 

26 CUH50R = 752:0UT = 1 :flTTRflCT = 77;IJMT0UCH 
=255 : nE5P0HSE=764 : OFF=0 : *:EVB0ftRD=53775 

M.MflRGII» = 82 

27 UIND0H=2 : TEKT= I : TEKTCaPS=8 5 BACKGRND 
=4 : BftCKTEKT=Z : 5MflLL=e : ftUERflGE=l ! LARGE= 
2 

28 UOICEe=0:PURE=18:MORMOI.=» 

29 TRAP 80;GOSIJB IHTRO 

38 FOR 0IUE5TI0H=10e0 TO 2488 STEP 188: 

TOT«L = IMTCOUE5T.TOII/ie0-93 :GOSUB 0UI7;P 

OKE OTTRiOCT,OFF 

48 MEHT QUESTION 

58 GOSIJB SCORE 

68 GOTO STftRT 

88 TOTOL=TOTftL-l:GOSUB SCORE 

99 GOTO START 

188 RfH . *«« QUI? «*» 

110 GRAPHICS small: POKE CURSOR, OUT : SET 
COLOR BftCKTEHT, BLACK, OARSCSETCOLOR TEX 
T, BLACK, LIGHT:POKE LMARGIM,0 
115 RESTORE QUESTION : READ ASKlS,ASK2S 
118 POSITION 0,0;' tte; "OUESTION NUMBER 

'■; TOTAL;" NUMBER CORRECT "p RIGHT 
128 POSITION 0,1;? «6;ASKlS 
121 POSITION 8,2:' tt6;ASK2S 
125 RESTORE QUESTION+30 : READ GUES51S,G 
UESS25 , GUESS3S , CORRECT , TELLlS , TELL2S , T 
ELL 35 

130 POSITION 0,5:' tt6;GUESSl5 
140 POSITION 8,7:? tt6jG»E552S 
150 POSITION 0,9:? «6;GUES53S 

160 KEY=PEEKtKEVBOARDJ :IF KEVrUNTOMCH 
THEN 160 

161 IF PEEK f RESPONSE J =31 THEN AHSHER=1 
:60T0 170 

162 IF PEEK f RESPONSE J =38 THEN ANSWER=2 
;GOTO 170 

163 IF PEEKtRESP0N5E}=26 THEN ANSMER=3 
:G0T0 170 

166 IF PEEK (RESPONSE! =39 THEN QUESTION 
=QUESTIOH-ia0:TOTAL=TOTAL-l:GOTO SCORE 

169 GOTO ERROR 

170 POSITI ON 15 , 12; IF ANSMER=CORRECT T 
HEH ? tte;"KIlgi":GOSUB NOISE :RIGHT=RIG 
HT+l:GOTO180 

175 ? "Cl!l":GOSUB BUZZ 

180 POSITION 0,15:' tt6;TELHS 

181 POSITION 0,16:? tt6;TELL2S 

182 POSITION 8,17;' tt6;TELL3S 



PRESS ANY 



PRESS 1 I ( 



198 POSITION 0,28:? «6;" 
KEV TO CONTINUE" 
191 POSITION 0,21:? «6;" 
KEV TO QUIT" 

199 GOSUB WAIT: RETURN 
280 REM . «*Bt SCORE **# 

218 GRAPHICS AVERAGE : POKE CURSOR, OUT :S 

ETCOLOR BACKGRNO, GREEN, DARK :SETCOI OR W 

INOOW, GREEN, DARK 

211 SETCOLOH TEHT, YELLOW, MEDIUM 

215 WR0N6=T0TAL-RIGHT 

220 POSITION 0,0:? «6;"V0U ANSWERED " 

238 POSITION 0,1:? tt6; TOTAL;" QUESTION 

S" 

240 POSITION 0,3;? tt6; RIGHT;" CORRECTL 

V" 

258 POSITION 0,4:' »6;WR0NG;" INCORREC 

TLV" 

268 POSITION 0,6:' tt6 ; INH {RIGHT/TOTAI 

J»188J;" PERCENT' ! M" 

265 REM . SELECT APPROPRIATE RESPONSE 

278 RESTORE^INT CRIGHT/TOTAL»6J#18 + 500 : 

READ GUESSlS 

275 REM , PUT RESPONSE INTO A STRING 

288 POSITION 0,9:? «6;GUESSl5 

290 ' " PRESS ANY KEY TO CONTINUE" 

299 GOSUB WAIT: RETURN 

580 DATA BETTER LUCK NEXT 

518 DATA NOT TOO GOOD, BUT 

EARNING!" 

528 DATA NICE TRY' 

538 DATA GOOD JOB! 

548 DATA UERV GOOD' " 

550 DATA EXCELLENT!' THAT'S 

PERFECT SCORE. 
560 DATA TREMENDOUS"' THAT'S 

SCORE ' '. 
1000 HEM ,*» QUESTION NO . 1 ** 
1018 DATA What srp spring peepers' 
1820 DATA 
1030 DATA 1. 

1840 DATA 2. 

1050 DATA 3, ■UlU.!- 

1850 DATA 2 

1078 DATA ■a;lilf|.-g : a snalJ anphibian t 

hat sings 

1080 DATA fie.peepsJ during the first 

warm 

1090 DATA weeks of spring. 

1100 REM .«» QUESTION NO . 2 *» 

1110 DATA Name the wetland plant that 

blOOMS 

1120 DATA the earl iest? 
1138 DATA 1. 
1140 DATA 2. 
3. 

3 ____^ 

it Often bl 



TIME 
YOU'RE 



ALMOST A 
A PERFECT 



FLOWERS 
FR0G5 




PURPLE LOOSESTRIFE 
JOE-PVE WElD 
SKUNK CABBAGE 



CABBAGE 



1150 DATA 
1160 DATA 
1170 DATA 
OOMS SO 

1180 DATA early that it pokes up throu 

gh the 

1190 DATA snow. 

1200 REM ,«* QUESTION NO . 3 ** 

1210 DATA What bird begins it's nestin 

g season 

1220 DATA in Februani' 

1 

2 

3 

1 

Often be 



GREAT HORNED 
CARDINAL i 
PHEASANT 



GREAT HORNED OWL 



1238 DATA 

1240 DATA 

1250 DATA 

1268 DATA 

1270 DATA 

fore the 

1280 DATA eggs are laid you can hear t 

he 

1290 DATA courtship hooting of the owl 

1300 REM ,«* QUESTION HO . 4 «* 

1310 DATA What Ma«*»al is the legendary 

1320 DATA forecaster of spring' 

1330 DATA 1. -—"— —^ 

1340 DATA 2. 

3, 

2 

TEFIinnraM : soMetiMes known 



1350 DATA 
1360 DATA 
1370 DATA 
as a 



CHIPMUNK 

wodDCHucr 

MUSKRAT 



1380 DATA groundhog; 
any and 



if it wakes too e 



48K AUSTIN BOARD 



$11495 



SUGG. LIST 



GIVE YOUR ATARI 400^ COMPUTER 
THE MEMORY POWER OF AN ATARI 800' 



AUSTIN BOARD FEATURES 

• Lifetime warranty. 

• Works with all hardware and software including all cartridges. 

• Custom components for tiighest reliability. 

• Superior CAD/CAM generated P.C. design. 

• Complete bank and board de-coupling for cleanest signal possible. 

• Gold edge connectors. 

• P.C. template provided for easy ATARI 400* installation. 

• Fully tested. 

• No system lock-up due to overheating. Uses '■/2 the power of other 48K 
boards on the market. 

• ATARI 800* compatibility with optional loop-back card (available for 
$5.00 additional). 

$9995 y^\^Y\ 16K board trade-in 



NOW AVAILABLE 



AUSTIN 80 " -An 80 Column color video display 
board for the ATARI 800'' 

Ask for AUSTIN BOARDS ^ at your local dealer or call 

617-772-0352 

AUSTIN FRANKLIN ASSOCIATES 

43 GROVE STREET, AYER, MA 01432 

M/C, VISA & COD ACCEPTED DEALER INQUIRIES INVITED 

'ATARI IS A REGISTERED TRADEMARK OF ATARI, INC. 



PAGE 24 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



GOLDFINCH 
SPARRDH 
5T6RLIMG I 



FLOOJJIHG 
FIRE I 
HIND 



STARLING 

BLACKBIRD 

COHBIRD 



13-50 OATA food is scarce it can return 
to hibernation for a few More 
weeks . 

1480 REM .»* QUESTION NO . 5 «* 

141B DATA Which bird nests later than 

other 

1420 DATA swa n birds? 

1430 DATA 1. 

1440 DATA 2. 

1450 DATA 3. 

1460 DATA 1 

1470 DATA ■tIi»>liK;Mi» : waits until suh 

wer because 

1480 DATA it uses thistle down to line 
it's 

14^0 DATA nest. Thistle nature in sumim 

er , 

1500 REM .** QUESTION N0.6 »» 

1510 DATA What NATURAL DISASTER can he 

ip the 

1520 DATA pra irie to be wore fertile' 

1530 DATA 1, 
1540 DATA 2. 
1550 DATA 3. 
1560 DATA 2 

1570 DATA ■una: burns Off the old dr 

y plant 

1580 DATA stalks and helps sowe seeds 

to 

15^0 DATA germinate. 

1600 REM .** QUESTION NO . 7 «* 

1610 DATA Mhich natiue bird lays it's 

eggs in 

1620 DATA the nests of other birds'* 

1630 DATA 1, 

1640 DATA 2. 

1650 DATA 3. 

1660 DATA 3 

1670 DATA laOMinia: used to follow th 

e buffalo 

1680 DATA for food and did not have ti 

»e to 

1690 DATA care for their young. 

1700 REM .«* QUESTION NO. 8 »» 

1710 DATA What part of a Haple tree ca 

n you eat 

1720 DATA wit h y our break fasf^ 

1730 DATA 1. 

1740 DATA 2. 

1750 DATA 3. 

1760 DATA 2 

1770 DATA BSQB: used to make Maple sy 
rup . 

1780 DATA 

1790 DATA 

1800 HEM .«« QUESTION N0.3 »» 

1810 DATA What fauorite spring flower 

in the 

1820 DATA Lily faMily has 3 petals - 3 

sepals and 3 leav es'^ 

1830 DATA 1. 
1840 DATA 2. 
1850 DATA 3. ■zIH 

1868 DATA 2 

1870 DATA ■iimiiimi : one of our showi 

est 

1880 DATA woodland flowers. 

1890 DATA 

1900 HEM .** QUESTION NO. 10 #« 

1910 DATA What insect is a Major polli 

nator of 

1920 DATA the flow ers of fruit trees'* 

1930 DATA 1. 

1940 DATA 2. 

1950 DATA 3. 

1960 DATA 1 

1970 DATA m:M:WM:Hm: workers use the 

flowers of 
1980 DATA early blooming trees to buil 
d up the 

1990 DATA honey supply and feed new be 
es . 

2000 REM .«« QUESTION NO. 11 *« 
2010 DATA What colorful crustacean swi 
MS upside 

2020 DATA down in teMporary spring pon 
ds? 



LEAVES 

SAP 

BARK 



BUTTERCUP 
TRILLIUM 



HONEY BEE 
BUTTERFLV 
HASP 



1, 
2, 
3, 
2 



CVCLOPS I 
FAIRV SHRIHP 
CRAyFISH 



FAIRV SHRIMP 



they Mate in 



2030 DATA 
2040 DATA 
2050 DATA 
2860 DATA 
2070 DATA 

spring - 

2080 DATA lay their eggs quickly - and 
2090 DATA disappear until next spring. 
2100 HEM ^«» QUESTION NO. 12 *H 
2110 DATA What bird has a speckled bre 
ast in 
2120 DATA Winter tJhat changes to black 

in spring' 
2130 DATA 1. 
2. 



STARLING 

ROBIN 

JAV 



BQEEmia: the beak also ch 



2140 DATA 

2150 DATA 3, 

2160 DATA 1 

2170 DATA 

anges to 

2180 DATA bright yellow during spring 

Mating 

2190 DATA season. 

2200 REM .** QUESTION NO. 13 ** 

2210 DATA What insect roMes to Canada 

froM 

2220 DATA Mexico to Mate and law eqqs' 

2230 DATA 1, ■ ■ — -■- ■ "^- — 

2240 DATA 2. 

3. 

3 

lays eg 



DRAGONFLY 
TARANTULA 
MONARCH BUTTERFLV 



MONARCH BUTTERFLV 



2250 DATA 

2260 DATA 

2270 DATA 

gs on 

2280 DATA Milkweed plants. 

2290 DATA 

2300 REM .»» QUESTION HO . 14 ** 

2310 DATA What wetland bird does an ae 

rial sky 

2320 DATA dance each spring' 
^ — 



2330 DATA _ 
2340 DATA 2 
2350 DATA 3 
2360 DATA 



HDODCDCK 
HERON 
WOOD DUCK 



2370 DATA ■■[■l.Mrfilirai: at sunrise and s 

unset Male 

2380 DATA woodcocks WOO feMales with t 

his 

2390 DATA spectacular display. 

2400 REM .## QUESTION NO, 15 ** 

2410 DATA What spring HushrooM is a fa 

worite of 

2420 DATA gou rMet cook s? 



HEDGEHOI 
SHAGGY MANE 
MOREL " 



considered by Many 



2430 DATA 1. 
2440 DATA 2. 
2450 DATA 3. 

2460 DATA 3 

2470 DATA ■!gil;IJM 

to have 

2480 DATA the best flayor of any wild 

MUShrOOM. 

2490 DATA But soMe people are allergic 

to the». 
5000 FOR PITCH=20O TO 2 STEP -3: SOUND 
UOICEO, PITCH, PURE, NORMAL :NEKT PITCH:SO 
UND UOICEO, OFF, OFF, OFF .-RETURN 
5050 FOR PITCH=50 TO 255 STEP 3;S0UMD 
U0ICE8 , PITCH , PURE , NORMAL : NEXT PITCH : SO 
UND UOICE0,OFF,OFF,OFF:RETURN 
5100 FOR TIME=0 TO 300:HEKT TTME:RETUR 

5150 FOR TIME=0 TO 50 : HEKT TIME 

5160 KEV=PEEKfKEVBOARDJ :IF KEY=UNTOUCH 

THEN 5160 
5170 FOR TIME=1 TO 3:»IEKT TIME '.RETURN 
5200 FOR FLASH^l TO 100:5OUND UOICF0,4 
, PURE , NORMAL : HUE=RHD C0)«16 : LUMIN=HUE : 
SETCOLOH TEKTCAP5,HUE,LUMIN 
IFIL^^HfiS^v^OICEO , 15 , PURE, NORMAL : NEKT 
FLASH: SOUND UOICEO, OFF, OFF, OFF : RETURN 
5300 POSITION 5,12;? "OOPS ..,.. THAT ' S 
THE WRONG KEV":G05UB NOISE .GOTO QUI? 
6000 REM . «**IMTRODUCTIOH«*« 

6003 GRAPHICS AUERAGElPOKE CURSOR, OUT: 

'sisgba^.ieess^KER^f^^'-''"' •^'^^'^ = ^"'^"'■"^ 

6004 SETCOLOR TEXT, YELLOW, MEDIUM: 5ETC0 
LOR TEKTCAPS, GREEN, MEDIUM 

6005 POSITION 0,1:? «6;"self teaching 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 25 



series" 

6810 POSniOH 8,7:? n&;" 

II 

6820 POSITION 8,5:' tt6;" 
6838 POSITION 8,11:' tt6 ; ' 

II 



5PRIMG 



NATURE" 
QUIZ 



1383, ThOHas M. 

■7 ; -> 



6060 ' ;' :' " to 

Krischan"; 

6870 G0SU8 PiOUSI; : G05UB PrtUSE : ' 

? " PRESS flNV KEV TO BEGIN 

60«0 GOSUB THINKLE 

6899 GOSUB HAIT: RETURN 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



1658 DflTfl 288,333,976,458,685,684,952, 

432,718,517,28,393,277,555,556,7744 

1888 Oartt 618,882,78,32,537,72,396,158 

,982,559,782,453,654,828,51,6986 

1958 DflTfl 63,396,885,438,73,758,696,43 

4,255,64,467,374,761,328,621,6517 

2180 ttaia 762,599,176,480,264,523,374, 

66,23,684,766,255,207,962,952,7093 

2258 DflTfl 111,383,593,441,543,778,385, 

9,585,294,856,388,566,395,438,6669 

2480 DflTfl 774,579,338,438,641,312,389, 

292,118,182,438,560,612,449,581,6687 

5178 Dftfft 98,236,493,885,683,473,255,9 

36,591,368,423,148,822,683,173,7171 



1 DATft 636,747,676,413,268,265,246,82, 

85,577,110,712,53,4,4,4878 

27 Dftlrt 743,187,341,522,623,116,162,29 

0,195,718,634,424,728,458,464,6597 

125 DATft 986,677,686,695,453,389,312,3 

19,973,135,178,138,623,629,635,7732 

198 DATft 3,163,493,556,108,838,223,998 

,549,471,731,288,375,566,16,6282 

288 DflTfl 702,955,495,421,67,566,498,62 

7,408,473,562,93,528,263,308,6950 

1850 DflTft 758,372,875,41,338,568,11,76 

5,607,66,482,378,885,90,463,6699 

1280 DATA 574,423,772,754,474,473,375, 

899,88,219,588,636,824,512,932,8535 

1350 DfiTft 281,381,62,518,904,586,925,8 

52,899,274,495,381,6,986,263,7733 

1588 DflTfi 592,831,775,484,32,48,387,99 

8,184,277,598,817,745,493,866,8119 



ATARI 



GRAPHICS HARDCOPY 

NOW FOR NEC & OKIDATA 



Dumps anything on the screen of an ATARI 
400/800 lo a printer. All graphics & text 
modes- Players /missiles /sea ling /grey 
scale/GTIA/morel Works with EPSON, 
NEC, Okidata, Centronics 739, IDS and 
Trendcom. Specify 800 or 400 and primer 
when ordering. 



^"^^^^ T.,.l, 



(209)667-2888 ^ 



:ROTRON»CS,inc..c.0.[ 

25 N, Golden State Blvd. 
Turlock, California 95380 



INCLUDES CABLE & SOFTWARE 
850 MODULE NOT REQUIRED 



^I^U^^l 



IC '.-. tOld^U Ml l-UIHI -.f;i;i I H DIM 

"ATARI IS a registered Irademark of ATARI Computer Inc. 





by Jerry White 
For the Atari 400, 800, and 1200 XL • Disk or cassette 

Requires 32K RAM • Suggested retail: $24.95 

To order direct from DONT ASK. send a check or money order, or call to order 
C.O-D, Add S2.00 stiipping and handling. California residents add 6% sales tax 
(6.5% if you reside in LA. County). Please specify disk or cassette version. 

Registered owners of S AM. for the Atari: you can get a special low-priced version 
of POKERSAM. Please write to DON'T ASK for information, and be sure lo indi- 
cate your S.A-IVI. serial number. 



THIS POKER PLAYER HAS SOMETHING 
UP HIS SLEEVE . . . 
HE TALKS! 



The makers of S.A.M., the Software Automatic Mouth, now 
bring you a revolutionary talking game: POKERSAM. He 
narrates every hand aloud, naming the upturned cards, 
announcing the bets, and wisecracking whenever he 
gets the chance. Like a lot of poker players, he's some- 
times full of bluster and he isn't always a good sport. But 
he's always a real character with a gift for gab. 

Your Atari needs no separate speech synthesizer to 
produce POKERSAM's speech. It's all done with the 
S.A.M. speech system. As you may know, S.A.M. is available 
separately as an unlimited-vocabulary speech synthesizer 
that you can access in your own programs. POKERSAM is 
not a tool for creating your own computer speech, but it 
contains a small module of the S.A.M. system. This means it 
can make any Atah computer speak, without additional 
hardware or software! 

Dealer inquiries welcome 



D®nT ASK 

COMPUTER SOFTWARE 



2265 Westwood Bl., Ste. B-150 

Los Angeles, CA 90064 
(213) 477-4514 or 397-8811 



ATARI is a trademark of ATARI INC. 



PAGE 26 



A.N.A.L.O.G, COMPUTING 



ISSUE 11 



WHAT IS 
D:CHECK/C:CHECK 



Most program listings in A.N.A.L.O.G. are followed by a table of numbers appearing 
as DATA statements, called "CHECKSUM DATA." These numbers are to be used in con- 
junction with D.CHECK, which appeared in issue no. 10, and C:CHECK, in this issue, 
p. 16. 

D:CHECK and C:CHECK are programs by Istvan Mohos and Tom Hudson. They are 
designed to find and correct typing errors when entering programs from the magazine. 
For those readers who do not have a copy of issue no. 10, send a pre-addressed, 
stamped, business-sized envelope to: 

D:CHECK ARTICLE 
P.O. BOX 23 
WORCESTER, MA 01603 









CONTROL CHARACTERS 




Some program 


listings reproduced in A.N.A.L.O.G. may contain "strange" c 


haracters not shown on 1 


the ATARI keyboard. 


These are 


special characters 


which use 


the CTRL, ESC and "ATARI LOGO" | 


(INVERSE) keys. Shown below 


is a list of these ( 


:haracters 


and the keystrok 


es used to get them. D 1 


« 


CTRL 


r 










■ 


INVERSE CTRL 


M 


¥ — 


CTRI 


A 




L 


CTRL Z 




■ 


INVERSE CTRL 


N 


1 — 


CTRL 


B 




t 


E5C ESC 




1 


INVERSE CTRL 





J 


CTRL 


C 




♦ 


ESC CTRL UP-ARROH 


E — 


INVERSE CTRL 


P 


^ — 


CTRL 







* 


ESC CTRL DOHN 


-ARROW 


n — 


INVERSE CTRL 





-1 


CTRL 


F. 




♦ 


ESC CTRL LEFT 


-ARROH 


■■ 


INVERSE CTRL 


R 


/ — 


CTRL 


F 




♦ 


ESC CTRL RIGHT-ARROM 


•• 

■1 


INVERSE CTRL 


5 


\ — 


CTRL 


G 




« 


CTRL . 




n — 


INVERSE CTRL 


T 


A — 


CTRL 


H 




• 


CTRL i 




■ — 


INVERSE CTRL 


U 


I 


CTRL 


1 




« 


ESC SHIFT CLEAR 


J ~" 


INVERSE CTRL 


U 


k -- 


CTRL 


J 




i 


ESC BACK S 




■I 


INVERSE CTRL 


H 


1 


CTRL 


K 




► — 


ESC TAB 




■■ 


INVERSE CTRL 


K 


I 


CTRL 


L 




c 


INUERSE CTRL 


M 


1 — 


INVERSE CTRL 


V 





CTRL 


H 




i: — 


INVERSE CTRL 


A 


i: — 


INVERSE CTRL 


Z 


.m 


CTRL 


N 




1 -- 


INUERSE CTRL 


B 


D — 


ESC DELETE 




■ 


CTRL 







y — 


INVERSE CTRL 


C 


Q ___ 


ESC INSERT 




4 


CTRL 


P 




:i — 


INVERSE CTRL 


D 


Q — 


ESC CTRL TAB 


fCLR) 


r 


CTRL 







n — 


INVERSE CTRL 


E 


B — 


ESC SHIFT TAB 


( tSETJ 


i. 


CTRL 


R 




rj — 


INVERSE CTRL 


F 


■ — 


INVERSE SPACe 




+ — 


CTRL 


5 




^^ — - 


INVERSE CTRL 


G 


■ ___ 


INUERSE _ 




• 


CTRL 


T 




r — 


INVERSE CTRL 


H 


n — 


INVERSE CTRL 




■ 


CTRL 


U 




r — 


INVERSE CTRL 


I 


n -— 


INVERSE CTRL 


/ 


( — 


CTRL 


M 




^ -— 


INVERSE CTRL 


J 


II -- 


INVERSE 1 




T 


CTRL 


M 




b — 


INVERSE CTRL 


K 


Q 


ESC CTRL 2 




JL 


CTRL 


X 




J — 


INVERSE CTRL 


L 


u — 


ESC CTRL BACK 


S 


1 


CTRL 


V 










u — 


ESC CTRL INSERT 1 




347 N.Ch-r'eG Strc-oi 

Baltimore, MD 21201 (301)659-7212 

Call or wnle for ir.iofrnation and the name of youi nearest 

MUSE dealer. Apple is a TM ot Apple Compuler Coip. 

Atari is a TM of Atari Inc. 



t 




i^ 



ATARI IS a leniiieFed iradmnark at ATARI Inc, * VIC-211 is a 'Bgltiorad iradoniark of Cammodore • APPLE it » irademark nt APPLE Compuier li 




SINCLAIR/TIMEX® ■ OSI • APPLE® PET/CBM 



ELCOMP PUBLISHING, INC. 

53 Redrock Lane, Pomona CA 91766 / USA 

Phone (7141623-8314 

Paymoni: Chock, monov order. VISA, Maitsf Charge, 

Eurocheck 
Ortliirt from oultida USA: iM 15 % thippinfl. 
CA-rmidonli: add 6.B % taK. 




ATARI BASIC - LMming t)y Umob 

Ane>i«)tlenl book for Ihe lieglnner. Many 
ftiDii proyrnms and learning axarclte;!. 
Ord«r No. 164 S7.95 

Gamat for tha ATARI ComiHiiflr 
This book deicrlbes advancei) prooram- 
mlng tecrhniqufit like plsvor-tnissila- 
Qraphln add uia of iha hardwaro-regisiers. 
Caniaiiu many ready-to-ruti programs in 
BASIC aiuJ one called GUNFIGHT in 
machifio lanijuage. 

OrdM-No. 182 E7.9B 

How lo proof'>'" your ATARt in 6502 
machine iBnguaga 

Thi) sutiiaci of d)tt book is to teach you 
l>aw 10 program your ATARI computar 
in GGOS muchino langiiage. Cuniainii a 
lajgo colleciiot! of jirogr ami. 
Order-Na. 16S S9.95 

Program Onicriptions (ATARI) 
Ordar-No. 173 £5.00 

FORTH on rtio ATARl-Leorntng by 
Uting. Qrctor-No. 170 S79& 



HOW TO PROGRAM YOUR 



in6502Maclilnelanouage i 




m^^: L 




Books < Software for VIC-20 (rei|uirat 

3K RAM Exp,) 

WorilprocMsor.flK RAM#4870 S13.0B 

M.Tiliiig I.UI, I6K RAM #4883 B14.95 

Trir-ks for VICi (book! #17fi 5 9-95 

TICTACVIC #48B0- S 9,95 

GAfJlEPACK lOgiimajl # 4801 B 14,S5 

DiialJoyiiick ImUuct. #4SB[> S 9.85 

INPUT/OUTPUT Progr #48Bfi $ 3,95 

MidiaHoitililet fr'489fi 6 19.a5 

TfltiFii».S()iiu*h.BrBafc #4881 fi 3.95 

RiindlforVIC ^^4894 8 O.flfi 



tlniuerul Experiineiil. r Bmrd (or 
foirl) Tt buirLj tl q , 



iliu 



tiuilil yoiii own 3k RAM cKpiiiiiJei ana 
ROMrbourd. 

OfdHr-Nn. IS.I.J E Ij.-.fjr, 

iiollwarB lor SINCLAIR ZX-ai amJ 
TIMEX 1000 

MjdiiNi! I.arigiii«|« Monuor 

Qri(uf-Ni>. 2398 S9.95 

M?,,)m.< L::.x a" 2390 619.35 



MicroconipiilBl lUrdwarfl 
Handbook (U4^ paget) 
Deicriplicini, pmnitit and 
specif iiai ions of Um miiul 
popular microiinjceMOii 
and siipporl chips. 
A MUf51 for ilie hardwiiro 



Cate and Feeiling of die Commodore PET 

Elijht i:|iii(ileii uKpiuriiig PET harflwaro. 
IniUiiiJKs ri:pnii .iiul miiirfacinQ infortnaiion 
I'uiijraiiiininy in.-.Ui .incl schematics. 
Ordiir No. 150 C9.9!> 

New mvi«):i applicaliniis iii.vuial lor Ihe 
hiaiii liisifiiiiirinls 'iN /ti'1/7. Complex 
Sound GRiiaraidi. 

Order-No. 1Ei4 EB.dS 

BK Uicrowft BASIC Rafarence Manual 
Ordcr-IUfl. liil SQ.OG 

Expaniion Handbook lor 6602 and epp2 
Order No. 152 69.95 

Dnukt for 051 
The Firii Book of OHIO ti 167 S7.96 
The Second Hook of OHIO ^158 S7.95 
The Third Book of OHIO # 159 fi7.9S 
The Fourth Book of OHIO fflSO E9.95 
The Fifth Book ol OHIO S IBl S7.9S 
Barn boflrdT from (ha Custom APPLE Book 




bull 
Ordor-No. 29 



6522 I/O Board 
EPHOM Burner 
8K EPHOM/RAM Board 
Protolypmg board 
£14.95 ^'"1 leptiaiar banrd 



Order t 



#605 & 39.00 
kmi S49.00 
/FBOg S29.00 
n^M S29.00 
n^60C ^49.00 



3 boardi and get iho book FREE 



Tho Custom Apfile *■ Other 
Myitsriei ~ A cnmpleto quido 
to custoniuing ttin Applr; Sofi 
ware and Hardware , 
Order-No. 880 624.95 

Wo also stock Ihe boards 
which aie used in ihe book 

"The Ciiilnm Apple..." 



Programming in 6502 Machine 
Language on yodr PET + CBM 
2 compteie Editor/AssemblBrs 
(SotircD code 3 hoxdump * lioS' 
aiplion plus a powerful 
machine languaae monitor 
(hexdumpt ). 

Order. No. 166 S19.95 

Above anembleri on cauetts 
(Bouk No. 166 includedl. 
Order-No. 4812 



Programming in BASIC and 



Ordor-No, 174 Ihookl KO^B 

Small BuiJneit Programs 

Complete litiingt for the 

businots user. Inventory .Invoice 

writing, mailing li» and much 

more. 

Ordnr-No. 1S6 E14,M 




EDITOR/ASSEMBLER 



■jh^ 



COMING SOONI 

r.,^^-^—, ORDER NOVVI 

' ■t-iiTiir??J A Look in the future 
nMB *^'*t< your ATARI 
■ L .J^^H lAstroloov and how u> 
Wk Wml^^fm '^° your owivhotDSCoiw 
rr^ TT '^ oniheATAFfiaOOI. 

OrdarNo. 171 «fl.B6 
Attrology and Bio- 
" rhythm toi ATARI 
« (cats, or diik). 
, ' J Order-No. 7223S29.95 

,4^ 1 BInh controKKnaus 

^ md Ogino). Cais. m dish. 

Order-No. 7222 629.95 
Programi from Book 
No. 1S4 

Tho programs from 
book No, 164 on dj^i< 
(book included), >-- 

Order-No. 7100 R29.00 -_— - 
Programs from Bouk Sp* 
No. 162 on disk (hook 
included) 

Order-No. 7231 fi29.9b 
OUNFtGHT 
This game iieadi. ivai 
(oysiicki, Aniiiiution' 
saiind-Comai on ,i ..„. . 
bootable cassBUi), 
Otder-No,7207S1Q.9b 




ATMAS 
Macro-Aswmbler for 

ATARI-800/48K,OnoQf 
iha nioti powerful odiiui assemblers 
on the market. Versatile editor with 
scrolling. Up lo l/k of source-code, Very 
fail, tianslaies 5k wiurce-codu in ahout G 
sokonds. Source coda can Ite saved on disk 
Of cnsiQtio.dnciiidesAIMONAII. 
Order No. 7099 disk version 689,00 
Order-No. 7998 cartridga veislon 6120.00 
ATAS 

Same as ATMAS but without macto- 
capahilliy. Cassut to based. 
OrdorNa. 7090 32K RAM C49.9S 

Ordw-No,79&a 4SKRAM 840.65 



ATMONA-Z 

This id a iracer 
dehuggur) that lau you 
explore the ATARI RAM/ 
ROM araa. Yon can stop at pre- 
viously selected address, opcode, or 
opeiaiid. Also very valuable in under- 
standing the microprocessor. Includes 
ATMONA-1. 

Order-No. 7049 cawotte version 649,95 
Order-No. 7060 disk version 854.00 
ATMONA-1 

A powerful machine language monitor, 
Disasiomble, dump (hex and ASCII), 
change memory location, block transfer, 
fill memory block, save and load-machine- 
lanouage programs, start programs. Piimor 
option via throe differant inidrtuces 
Ordor-No. 7022 cassette version 6 10 95 
Orde(.Na.7023 disk varijon £24 95 
J*-' 



FORTH 
from Elcnmp 
Publiihing,)nc. ts nn ox- 
tended Fifl-Fofih-vBfslon, Editor 
and I/O package included. Utility 
package includes dacomoilar, socior 
copy, HoK-dump (ASCII), ATARI 
Filehandling, total giaphic and sound. 
joystick program and plnyar miistlo. 
Exiramnly powerful' 
Order No. 7055 disk £3B:9fi 

Floating point package with trigono- 
metric functions (0-900). 
Order-No. 7230 disk 629,05 

Learn-FORTH from Elcomp Publi- 
shing, Inc. 

A subset of Fig. Forth for the beginnHi. 
On disk (a3K RAM) or on caiseita 
(16k RAM). 
Order-No. 7053 S19.9& 




Primed 
extonsivo 
Ordor-No. 7292 



Onliir No, 7210 cassette version £29.95 
Ordar No, 7210 diik vanlon £34.95 

Ordur.No. 7217 cartrldga variion 
A vm-Mu fur the BIT3 80 col, card is avail 
ATCASH-I - Cirth rfifjtator lof ATARI 
Oidcr-No, 7307 disk only 649,95 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 29 



MOVING MISSILES IN BASIC 



16K Cassette or Disk 



by Tom Hudson 



Last issue, 1 presented a machine-language sub- 
routine which enabled BASIC programmers to move 
players around on the screen quickly. Shortly after 
the issue was sent to readers, I received a letter from 
Jeff Stefanski (see the Reader Comment section of 
this issue). Jeff asked for a modification to allow the 
subroutine to move missiles as well. 

Rather than modify the existing player movement 
subroutine, 1 decided to write a new, stand-alone 
missile movement subroutine. It can be used by itself 
if only missiles are ciesired, or can be used in con- 
junction with the player mover from A.N.A.L.O.G. 
^10 if both players and missiles are needed. 

Following this article are two listings. The first is a 
BASIC program which demonstrates the use of the 
missile movement subroutine. The second listing is 
the fully documented assembler source code for the 
subroutine. 

What Are Missiles? 

Hidden deep inside each ATARI computer is a 
mysterious graphics ability known as player-missile 
graphics. These graphics work with any graphics 
mode, and can be moved around on the screen with- 
out disturbing any other graphics. 

Why are these graphics called players and mis- 
siles? PLAYERS are eight pixels (picture elements) 
wide and therefore can be used to create fairly de- 
tailed images, such as spaceships, cars, or other 
animated figures representing the player. 

MISSILES, on the other hand, are only TWO 
pixels wide. They were designed to be used as simple 
projectiles, because of their limited resolution. 

The Demonstration Program 

Enter Listing 1 into your computer. Before run- 
ning it, be sure to SAVE it, as a mistake in typing the 
assembly-language code could "lock-up" your 
computer, making it necessary to re-enter the pro- 
gram. When RUN, this program will place the num- 
bers 1-4 on the screen using the four missiles and 
move them around randomly. Let's walk through the 
program and see what each line does. 

Line 200 — This line loads the machine-language 
missile movement subroutine into a string called 
"MISMOV$." This subroutine will be called when- 



ever we want to move a missile on the screen. 

Line 240 — This line sets up four string variables, 
M0$ through M3$. These strings will hold missile 
shape data. These strings are currently set up as 6 
bytes long, which limits the missile graphics images 
to 6 pixels in height. You can change this length to up 
to 128 bytes, making the missile image 128 pixels 
high. 

Lines 250-280 — These Hnes READ the DATA in 
lines 690-750 into the missile shape strings set up in 
line 240. Once again, note that each line reads 6 
bytes into the appropriate string. To make missile 
images of different height, change the 6 to the desired 
value. 

Lines 290-320 — These lines set up the player- 
missile area in memory and activate them. Line 320 
sets the player-missile priority to 1. This causes the 
players and missiles to appear "in front" of other 
graphics. These lines should not be changed. 

Lines 330-360 — Since there is no SETCOLOR 
command for player-missile graphics, we must 
POKE the appropriate color values into the P/M 
color registers. To get the color number, use the for- 
mula: 

COLOR POKE UflLUE = CCOLOR NUMBER »i61 
+ BRIGHTNESS 

Line 370 — Sets the background color to black. 

Line 410 — Dimensions two arrays, X and Y. 
These arrays will be used to hold the X and Y coor- 
dinates of each missile. 

Line 420 — This line initializes all the missiles' X 
coordinates to 128 and the Y coordinates to 64- 
These coordinates will place the missiles at the center 
of the screen. 

Line 430 — This line starts a FOR-NEXT loop 
which will process each missile, from missile to 
missile 3. 

Lines 440-490 — These lines randomly change 
the X and Y coordinates of the missiles, which will 
make them wander around on the screen. 

Line 500 - Depending on the missile number (I) 
this line transfers control to the appropriate USR 



PAGE 30 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



statement in order to move the desired missile. 

Lines 510-540 — These Hnes send the X and Y 
coordinate information to the missile movement 
subroutine. Line 510 moves missile 0, 520 moves 
missile 1, etc. Let's look at line 510: 

ft=ySR (HI5L , , PMB , ft&H CMOS J . X (0) , Y COJ , 63 
;G0T0 550 

This statement has 7 parameters inside the USR 
parentheses. 

"MISL" is set up in line 200. Do not change this 
variable. It is the address of the missile mover sub- 
routine. 

"0" means we want to move missile zero. Note 
that line 520 has a " 1 " here, since it moves missile 1 . 
This value can range from to 3, and will move the 
appropriate missile. 

"PMB" is the player-missile base address, which 
was calculated in line 300. Do not change this 
variable. 

" ADR(MO$)" tells the missile mover where to get 
the missile image data. In this case, we want the sub- 
routine to use the information in the string variable 
M0$. Try changing this to "ADR(M1$)" and RUN 
the program. You will see two "2's" moving on the 
screen. This is because the string Ml$ contains the 
data for the number 2, and it is now used in both 
missile and missile 1. 

X(0) is the X coordinate where we want to place 
missile 0. You can place any number or variable here, 
ranging from 0-255. 

Y(0) is the Y coordinate where we want to place 
missile 0. You can place any number or variable here, 
ranging from 0-127. 

"6" tells the subroutine how many bytes are used 
for the player image. In this case our missiles are 6 
bytes long (see lines 240, 250, and 690). If you want 
a different number of bytes (resulting in a different 
missile height), change these lines accordingly. 

Line 550 — This line completes the FOR-NEXT 
loop set up in line 430. 

Line 560 — This line passes control to line 430, 
causing the program to loop forever, moving the 
missiles randomly until you press the BREAK key. 

Lines 600-640 — These lines contain the DATA 
for the missile mover routine. Do not change these 
values. 

Line 690 — DATA for M0$, the number "1." 

Line 710 — DATA for Ml$, the number "2." 

Line 730 — DATA for M2$, the number "3." 

Line 750 — DATA for M3$, the number "4." 

Creating Your Own Missile Inaages 

Now, that we have walked through the program 
and studied what each line does, let's design our own 
missile image. Since we're limited to 2 pixels in 
width, the image will have to be very simple. Of 
course, it can be any height up to 128 pixels. 



The numbers that the demonstration program 
moved around on the screen are very simple. Figure 
1 shows how the number 2 was turned into DATA in 
line 710. 



2+1 «3 

1 =1 

2+1 =3 

2 =2 

2 =2 

2+1 «3 

Figure 1 

The shape we will make is shown in Figure 2. 




1 


= 1 


1 


= 1 


2+1 


=3 




B0 


2+1 


=3 




»0 


2+1 


»3 


2 


=2 


2 


=2 



Figure 2 

Now let's put our shape into demonstration pro- 
gram. We'll use missile number to show the image, 
so replace line 690 with the following: 
639 DiflTA 1,1, 3, 0,S, 0,3, 2, 2 
This missile image is 9 bytes long, so it will be neces- 
sary to change lines 240, 250 and 510 as follows: 

248 DIM H0SC5} .MlSfbJ ,H2SC6) .M3S<61 
258 FOR T::l TO "SiREfiS) W : MSS CIS =CHR$ CKJ 

;:NEMT IJREH #** MIS5ILe 6 *t*» 

519 ift::USRCMI5L,0,PMB,rt&R£M0$3,HC0) ,y(0 

J ,-95 :G0T0558 

After the program is changed, RUN it. You will 
see the numbers 2,3, and 4 on the screen, along with 
the shape we just defined. It's that simple! 

Summary 

Using players and missiles in BASIC can be very 
fast and easy when a machine-language subroutine is 
used to perform time-consuming operations. This 
demonstration program may be used as a framework 
for more complex programs. Simply replace lines 
410-560 with your own program code, and you're all 
set to begin exploring the wonders of player-missile 
graphics! 

If you have any questions or suggestions about this 
article write me care of A.N.A.L.O.G. Be sure to 
include a pre-addressed, stamped envelope if you 
would like a reply. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 31 



I would like to thank Jeff Stefanski for his sugges- 
tion that a raissile nnovement subroutine be written 
for A.N.A.L.O.G. Computing. If you have any 
suggestions for articles, just write. D 



lee REM MMKXMMKXJOCMMKICHKMKMKIOCMXMXMMK 
lie REM » MI5SILE SUBROUTINE l>EMO * 



128 REM » 
1J0 REM » 
146 REM * 
15B REM # 



BY TOM HUD50M 



SMEHT I; 
260 FOR 
:HE«T II 
270 FOR 
:MEKT I; 



;MlStI)=CHRSCN3 
;M2StIJ=CHR$CN3 
;M35CIJ=CHRSCHJ 

3 "JT'Jt"M 



i COLOR * 

2 COLOR * 

3 COLOR * 



* 
a.H.a.L.O.Q. COMPUTING » 

160 REM KXXXXMXXXXXMKXMXXXXXXXXXXXXKK 
170 REM 

180 REM KXKXKKKKMXK SETUP XXXXXXMXXHX 
150 REM 

200 DIM MISM0USCH4J :MISL = flDR(MI5M0gS3 
■.FOR K = l TO 114:REfiD H : MISMOUS £K) =CHRS 
CH5:NEKT K:REM KREflD ML DftTft* 
210 REM 

220 REM *»» LOAD MISSILE IMAGES *** 
23Q REM 

240 DIM M0Sf6J,Ml$(6) ,M2SC6J ,M3S{6J 
250 FOR 1=1 TO 6:ftEflD N : MB$ CI) =CHRS CH3 

;REM *** MISSILE *»* 
1=1 TO 6:REflD N: 

;REM «*» MISSILE 
1=1 TO 5: READ N: 

IREM *** MISSILE 
280 FOR 1=1 TO 6: READ N; 
:HEKT I '.REM *** MISSILE 
230 PMBflSE = INT C tPEEK 1145) +3) /4)«4 : POKE 
54279, PMBASE: REM »»« SET UP P/M AREA 

300 PMB=PMBASE»256 

310 POKE 559,46:P0KE 53277, 3:REM *** P 

/M DMA *f*« 

320 POKE 623,1 -.REM **f* P/M PRIORITY «« 

# 

330 POKE 704,134:REM *** P/M COLOR * 

340 POKE 705,136:REM *** P/M 

If |f 

350 POKE 706,13S:REM *** P/M 
360 POKE 707,142:REM »«* P/M 

W Jf 

370 SETCOLOR 2,0,0:REM *»» BACKGROUND 

IS BLACK *»# 

380 HEM 

330 REM XXX W YOUR PROGRAM HERE! 

400 REM 

410 DIM X(3) ,Vt3) 

420 FOR 1=0 TO 3.HtI)=128:YtI)=64:NEHT 

I 
430 FOR 1=0 TO 3 

440 HI = 2-INT tRND C03K5) : YI = 2-IHT (RHD (0) 
*5) 

450 KfI)=HtI)+KI:YCIJ=V{I3+YI 
460 IF K(I)<50 THEN K(I)=50:GOTO 480 
470 IF K(I)>198 THEN Ka)=190 
480 IF Y(I)<20 THEN Y{I)=20:GOTO 580 
490 IF Ytl)>110 THEN Y{I)=110 
500 ON I+l GOTO 510,520,530,540 
510 A=USRtMISL,O,PMB,ADRtM0S) ,XC0) , V t0 
) ,6) :GOTO 550 

520 A=USR JMISL , 1 , PMB , ADR tMl53 , H CI) , Y (1 
) ,6) :GOTO 550 
530 A=USRCMISL,2,PMB,ADRCM2S) ,KC2) ,Vii:2 

) ,6) :GOTO 550 

540 A=USRCMISL,3,PMB,A0RCM3S) ,XC3) ,YC3 

) ,6) 

550 HEHT I 

560 GOTO 430 

570 REM 

580 REM *** MISSILE MOVER DATA *»* 

590 REM 

600 DATA 216,104,104,104,133,213,104,1 

33,206,104,24,105,128,133,205,165,206, 

105,1,133,206,104,133,204,104 

610 DATA 133,203,104,104,133,208,104,1 

04,133,209,104,104,24,101,209,133,207, 

160,0,162,0,134,212,169,252 

620 DATA 166,213,240,7,10,10,9,3,202,2 



w fl. .R K 



08,249,166,212,49,205,145,205,196,209, 

144,30,196,207,176,26 

630 DATA 132,212,138,168,177,203,164,2 

13,240,5,10,10,136,208,251,164,212,17, 

205,145,205,232,169,0,240 

640 DATA 0,200,192,128,208,196,166,213 

,155,208,157,4,208,96 

650 REM 

660 REM *** MISSILE IMAGE DATA *** 

670 REM 

680 REM ■■!" 

690 DATA 1,1,1,1,1,1 

700 REM "2" 

710 DATA 3,1,3,2,2,3 

720 REM "3" 

730 DATA 3,1,3,1,1,5 

740 HEM "4^' 

750 DATA 1,3,3,1,1,1 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



100 DATA 778,122,244,236,250,743,796,9 

5,82,101,420,79,336,85,653,5020 

250 DATA 303,310,317,324,918,525,764,9 

56,925,934,943,937,145,102,581,8984 

400 DATA 80,27,287,293,985,719,583,574 

,556,545,765,333,343,353,205,6648 

550 DATA 751,724,103,504,109,674,637,1 

46,251,237,99.405,105,342,282,5369 

700 DATA 322,279,330,282,338,280,1831 



Assembly Language Listing 



MISSILE HOVER SUBROUTINE 



BY TOM HUDSON 
A.N.A.L.O.G. COMPLrriNG «11 



PAGE ZERO USAGE 



FHSTR 


= KB 


mm 


= *CD 


PHEND 


= $CF 


XPOS 


= $D8 


YPOS 


= $D1 


HOLD 


= fD4 


ttim 


= $D5 



:P/M BASIC STRING 
iMISSlLE ADDRESS 
.-MISSILE imGE END 
;X POSITION 
•Y POSITION 
;HOLD AREA 
;MIS3ILE « TO MOVE 



OPERATING SYSTEM EQUATES 



HP0SM8 



$D984 



SUBROLITINE STARTS HERE! 



START 



ORG $6880 

CLD 
PLA 
PLA 
PLA 
STAtf^UM 



;ANY ADDf?ESS 

CLEAR DECHWL MODE 
DISCARD 
DISCARD # HI 
PIXL MISSILE « LO 
AND SAVE ITi 



PAGE 32 




PLA 


PULL P/tl BASE HI 


STA MADR+1 


AND miv. 


PLA 


PULL P/M BASE LO 


CLC 


OFFSET INTO 


ADC «128 


HISSILE AREA 


STA t*^OR 


AND SAVE! 


LDA mOR+! 


OFFSET MISSILE 


ADC M 


ADDR HI 


STA MADR+i 




PLA 


PULL STRING HI 


STA PMSTR+l 


AND mJE\ 


PLA 


PULL STRING LO 


STA PHSTR 


mo SAiJEi 


?[A 


DISCARD X HI 


PLA 


PULL X LO 


STA XPOS 


^D SAVE IT! 


PLA 


DISCARD Y HI 


PLA 


PULL Y LO 


STA YPOS 


m aWE IT! 


PLA 


DISCARD LENGTH HI 


PLA 


PULL LENGTH LO 


CLC 


ADD Y POSITION 


ADC YPOS 


TO GET END 


STA PHM 


AND SAVE IT' 


LDY m 


ZERO P/M COM 


LDX «8 


ZERO STRING COUNT 


COPYLP SrX HOLD 


SAVE X REG 


LDA MFC 


SET HIGH 6 BITS 


LDX mm 


GET HISSILE « 


BEQ ZEROIT 


IF 8, DON'T SHin 


ZERSff ASL A 


SHIFT LEFT... 


ASL A 


TUO BITS 


ORA «3 


SET LOte 2 BITS 


DEX 


DOrC SHIFTING? 


BNE ZERSHF 


NO! 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



ZEROIT 



BYTSHF 



ENDBS 



NDfT 



LDX 
AND 
STA 
CPY 
8CC 
CPY 
BCS 
STY 
TXA 
TAY 
LDA 
LDY 
BEQ 
ASL 
ASL 
DEY 

mE 

LDY 
ORA 
STA 
INX 
LDA 
BEQ 

m 

CPY 

LDX 
LDA 
STA 
RTS 



HOLD 

(WDR),Y 

(MADR) ,Y 

YPOS 

NEXT 

PMEND 

NEXT 

HOLD 



(PMSTR),Y 

muM 

ENDBS 

A 

A 

BYTSHF 
HOLD 
(MADR) ,Y 
(tttDR) ,Y 

m 

NEXT 

#128 

COPYLP 

WON 

XPOS 

HP0SH8,X 



.-RESTORE X REG 
;ZERO OUT... 
;MISSILE B-YTE' 
; COPYING DATA YET--' 
;N0' 

;FINISHED COPYING? 
■YES' 

■SAVE Y REG 
iMOVEX REG... 
;T0 Y REGISTER 
;GET P/M BtlE 
ISHIFT BIT imGE 
ilF NOT MISSILE 8 
jSHIFT LEFT... 
"2 BITS 

IMORE TO SHIFT? 
■YES' 

■GET P/M OFFSET 
;'0R' BITS 
jCHANGE HISSILE! 
INEXT STRING BYTE. 
; FORCE BRANCH 
;T0 NEXT BYTE! 
;NEXT P/H BYTE 
■DWE U/COPY? 
■NOT DONE YET' 
;6Er MISSILE # 
jNOW JUST SET 
;X LOCATIUJ' 
jFINIS! 



RANA 1000 DISK DRIVE 

FOR YOUR ATARI COMPUTER 




* Compatible with existing software 

* Single/Double density 180K 

* LED readout defines five functions 

* 90 day warranty 

* Interchangeable with Atari 81 

* Supplied with own DOS/works with Atari DOS 



$419.00 



RAM FOR ATARI 

64K Board (400) $1 20. 

48K Board (400) $1 00. 

32K Board (400/800) $ 70. 

1 6K Board (800) $ 40. 

Inhome Keyboard for (400) S1 09. 

Joytyper Keyboard for (400) SI 09. 



Note: Installation of Memory Boards or 400 Keyboards 
You Pay Freight Costs 



$20. 



H FULLY CERTIFIED 100% DEFECT FREE 
DISKETTES (1 Box Min.) 
10-29 (Diskettes) 17.49/box 

30-99 (Diskettes) 15.99/box 

PRIZM 100-1- (Diskettes) 14.99/box 

MINI-FLOPPY DISKS Add $2.00 stiipping 

MC VISA C.O.D. 

DEALER INQUIRIES INVITED 



GEMINI DOT MATRIX PRINTER 




9 X 9 Dot Matrix 

100 OPS. Bidirectional 

6 Character Sets 

7 Character Fonts 
Cut Sheet: 8" to 10" 
Fanfold: 3" to 10" 
Copies: 3 carbonless stieets 



GEMINI 10( 80 Column) $319. 

GEMINI 15(136 Column) $479. 

C.O.D. VISA MC 

COMPUTER CREATIONS, Inc. 
P.O. Box 292467 
Dayton, Ohio 45429 
(513) 335-4260 or 
(513)294-2002 



All Orders Add $2.50 Shipping and Handling. 



YOU'RE GOING TO HAVE FUN 
WITH YOUR ATARI!! 




AND THE FUN GETS ROLLING 
WITH BUG OFF! 

Yikes! The bugs are swarming here, there 
and everywhere and only a strong whiff of DDT 
can put 'em away. The object of the game is to 
control the seven different kinds of pests that are 
running helter-skelter over everything. The Army 
can airlift in more DDT to fill your bug sprayer . . . 
but will they make it in time? 







s 
• •• • c 



• . 1 






■ ■ 


■ 





I 



The action builds to a furious frenzy as an 

awesome assortment of insects attack anything 
and everything in sight. A definite case of "spray 
first and ask questions later." All this and hi-res 
graphics, too! 

16K TAPE 050-0167 $29.95 

32K DISK 052-0167 $29.95 



TUTTI FRUTTI — byAlan Newman 
"GRAPE FUN" FOR THE WHOLE FAMILY! 

Somewhere between Never Never Land and 
next Thursday, there's a wild and wacky place 
where your joystick-controlled "Hungry" snacks on 
an orchard of goodies. But there are some nasty ol' 
bugs who'd just as soon snack on YOU, so look 
sharp and beware. Funtastic action for all ages! 



TUTTI FRUTTI . . . Wow! A crazy cast of 
characters in vivid hi-res color all performing in 
their natural habitat, otherwise known as TUTTI 
FRUTTI Land. Grape fun for ages 6 and up! 

16K TAPE 050-0160 $24.95 

32K DISK 052-0160 $24.95 




dventur6 



INTERNATIONAL 

To order, see your local dealer. If he does not have the program, then call 
1 •800-327-71 72 (orders only please) or write for our free catalog. 

Published by ADVENTURE INTERNATIONAL 

a subsidiary of Scott Adams, Inc. 
BOX 3435 • LONGWOOD, PL 32750 • (305) 862-6917 

PRICES SUBJECT TO CHANGE 





'!■» . 




ii# 



'M 



Ht' 



iV 'V 



,_--r-- 



■V%"t«| 



<f=^^ 



1^^: 




THE PLACE: a remote outpost on an ice world light years from earth. ' " 

Suddenly the small planet THULE is surrounded by alien life orbs destined to change the atmo- 
sphere to suit themselves. However, this spells certain death for your base as the frozen mountains 
start to melt! 

You take the command of your single seat fighter to destroy the aliens before it's too late. But you 
didn't know the aliens had help. . . 

STAR SENTRY is an arcade-type space action game written entirely in machine language for 
one player. Cassette or disk, 24K. $29.95. 



wim 




SOFTWARE 

RO. BOX23 
WORCESTER, MA 01603 

(61V) 892-3488 



star Sentry is a trademark of A.N.A.L.O.G. Software. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 35 



STRINGS IN ATARI BASIC 

The Republic of Letters 



They that dally nicely with words may quickly 
make themi wanton. 

(Shakespeare: Tivelfth Night III) 



by Richard G. Lyons 



The ability to easily manipulate alphanumeric 
characters was a major innovation in computer 
software. For any program to be considered "user 
friendly," it must communicate with, and accept 
from the user, English words. Being able to reply to 
computer inquiries with "Yes" and "No" gives a 
user the impression of having a conversation with 
the machine. Furthermore, it is much more efficient 
for a computer to "interpret" our human language 
than it is for us to interpret the computer's numerical 
language. String operations that delete, change, or 
insert groups of characters in a manuscript is the 
primary activity of Text Editors. All BASIC pro- 
grammers soon realize the necessity of learning and 
understanding string operations. Although 
numerous articles have been published describing 
the ATARI 400/800 computer, they have dealt 
primarily with graphics capabilities. This article 
provides an expanded description of the ATARI 
BASIC String operations. 

Strings 

A string is an array of alphanumeric characters. 
These characters can consist of letters, numbers, 
punctuation marks, or even the special ATARI 
keyboard symbols. A string which contains no 
characters is called a "null string." Examples of 
strings are: 



"ftBCD" 

"807" 

■■5IGI!" 

"" Cnull String) 



Note that each string was contained within quota- 
tion marks. The quotation marks inform the BASIC 
interpreter of the beginning and ending characters in 
a string. Consequently, quotation marks are illegal as 
string characters. Carriage Return (CR) is also 
invalid as a string character. Although most versions 
of BASIC restrict string lengths to 256 characters, 



ATARI BASIC permits strings to contain up to 
32767 characters. 

String Names 

Since strings can be manipulated as variables they 
must have variable names. There are several 
conventions that must be followed when defining 
string variable names. A string name must be from 1 
to 120 characters in length, begin with a letter, and 
end with a dollar sign ($). String names may not 
contain punctuation marks or ATARI special 
characters. Examples of string variable names and 
the direct definition of the contents of the strings are: 



K8T4S="flBC0" 
EKS="' ' ' ' " 
B.Sr-BNUM" 
R5TS-""RE5ET' 



legal 

legal 

legal 

illegal string nai*e 

illegal string characters 



Dimensioning Strings (DIM) 

Although A$="ABCD" is a valid BASIC 
statement, it cannot be used alone. All strings must 
be "dimensioned" before they can be defined or 
manipulated. Strings are dimensioned using the DIM 
statement. DIM statements allocate memory storage 
locations, and establish the string names for string 
variables. For example: 

10 DIM TS(123 
permits the programnier, at some later time, to 
define the contents of string T$ with up to twelve 
characters. Note that the DIM statement does not 
define the contents of string T$, but merely reserves 
twelve memory locations. Twelve 8-bit bytes of 
RAM memory are allocated in the above example. 
Consider the following program executed on an 
ATARI 800 with 48K bytes of memory: 



10 DIM flS 4327673 
20 DIM BS (327673 
30 END 



PAGE 36 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



This is a valid program. Lines 10 and 20 dimension 
the strings A$ and B$ by giving them the ability to 
consist of a maximum of 32767 characters. How- 
ever, strings A$ and B$ are null strings since they 
each contain no characters. Their dimensioned 
lengths are 32767, but their "character lengths" 
(number of characters in a string) are zero. The 
above program can be executed, but if an attempt is 
made to fill the strings with characters, an error will 
result because of insufficient memory space. 

ATARI BASIC permits several strings to be 
dimensioned in one statement. For example: 

10 DIH A5C180),BSC2ee),C$CSe(l) 

It is common practice to put DIM statements at the 
beginning of a program, and to dimension string 
variables with a number that is larger than necessary. 
Defining Strings 
There are several ways of defining a string in 
ATARI BASIC. The most direct method is a state- 
ment which indentifies the characters in a string. 
Such as: 

10 flS="ft8CD" 

This statement merely defines string A$ as the string 
ABCD. Another definition technique envolves the 
INPUT statement. In this technique, the user of the 
program is prompted to define a string. Consider the 
following program: 

10 DIM NAMEfClO) 

20 PRINT "WHAT 15 YOUR MflME" 

30 INPUT nat^s 

40 PRINT "YOUR «fll« I5_";NftMES 
50 END 

In this case, line 20 prompts the user to define the 
string NAME$. Line 30 performs the definition. 
Should the user key in more than 10 characters, only 
the first 10 characters would be used to define 
NAME$. Throughout this article, blank spaces will 
be identified with the symbol _ as shown in line 40. 

READ statements can be used to define strings. 
For example: 



10 DIM ftSCll),BStll>,CStll),DS(llJ 

20 READ A$.B$,CS.D$ 

30 PRINT ftS;BS;CS;DS 

40 OATfi STRING-, DEFINITION-, USING-, READ 

50 END 



Line 20 defines the four strings A$,B$,C$, and D$. 
Read statements help minimize programming effort 
by defining several strings using only one statement. 
Note that quotation marks must not be used in 
DATA statements containing strings. The most 
flexible (and complex) way of defining strings 
concerns the use of subscripts and substrings. 
Subscripts and Substrings 
Subscripts are numbers, or variables, used to 
identify portions of a string. Substrings are strings of 



characters that are contained in a larger string. A 
single character can be considered a substring. 
Substrings are defined by applying subscripts to a 
larger string. 

String names can have zero, one, or two 
subscripts. First, let's consider string definitions 
without the use of subscripts: 

Statement Printed Results 

10 DIM A$(10} ,B$(ie) ,C$(4) 

20 AS="ABCOEF": PRINT AS ABCDEF 

30 BSrAS:PRINT B$ ABCDEF 

40 CS=AS:PRINT CS ABCD 

Line 20 directly defines string A$. Although A$ has 
a dimensioned length of 10, its character length is 6 
since it contains only 6 characters. A$ occupies 6 
bytes of memory. Line 30 defines string B$ by setting 
string B$ equal to the string A$. We'll refer to string 
B$ as the destination string and string A$ as the 
source string. Line 40 illustrates an interesting 
characteristic of ATARI BASIC. Since string C$ has 
a dimensioned length of 4, only the first 4 characters 
of string A$ are used to define C$. Attempting to 
define a destination string with more characters than 
it can contain does not result in a software error! 
Next, let's consider string definition using a single 
subscript. String statements containing a single 
subscript take the form STRINGNAME$(sl), 
where si is the subscript. For example: 

Statement Printed Results 

10 DIH A$C10},B$Cie) 

20 ASr"12345678": PRINT AS 12345678 

30 BS=ASt4) : PRINT BS 45678 

40 BS=AS(5) -.PRINT BS 5678 

50 BS<:5}=ASC5) : PRINT BS 56785678 

60 BS = AStO) SPRINT BS ERROR 

70 BS=AS {9J : PRINT BS ERROR 

The first subscript encountered in this program is 
the (4) in line 30. The term A$(4) is a substring of 
the larger string A$. Substring A$(4) is the string of 
characters starting with the 4th and extending to the 
last character of string A$. Line 30 defines string B$ 
to be equal to the substring A$(4), namely "45678". 
Line 40 shows a similar definition with a subscript of 
5. Line 50 illustrates the definition of a destination 
substring, B$(5), with a source substring A$(5). 
This operation combines the two substrings to 
define string B$. Combining strings, or substrings, is 
known as concatenation. In order to concatenate 
two strings without losing any characters, the sub- 
script of the destination substring must be equal to 
one plus the character length of the current destina- 
tion string. This principle is illustrated in line 50. 
Since the character length of B$ is 4 (before line 50 
was executed), the destination subscript must he 5. 
Line 60 illustrates that zero is not a valid subscript. If 
a subscript exceeds the character length of a string, 
an error occurs as shown in line 70. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 37 



The use of double subscripts permits the 
executiori of additional string operations. String 
statements containing double subscripts take the 
form STRINGNAME$(sl,s2). Consider the 
following statements: 

Statement Printed Results 



Statement 



Printed Results 



10 DIM 5S(15J ,TStl5J ,Q5C15) 

29 5$="flTfl5IC";PRIHT 5S 

30 QS=SS(3,5J jPRIMT QS 
48 TS="RI_Bfl": PRINT T5 
50 5St7.13)="TS:PRINT 5$ 
60 5$=S|{1,6J IPRIKT 5S 



70 TSC6,9)=5SC4,6) ;PRINT TS RI_BflSIC 
80 55(4J=T$;PRIHT 5$ ... "" 

90 QS = 5S(13 rPRINT QS ... 
108 Q$=SS{1,1) :PRIHT OS 



rtTftSIC 

(151 

RI_Bfi 

ATa5ICRI_BA 

fllftSIC 



ftTftRI_BA5IC 
ATfiRI-BftSIC 



Line 30 defines string Q$ to be equal to the substring 
S$(3,5). Substring S$(3,5) is the string of characters 
starting with the 3rd character and ending with the 
5th character of string S$, namely "ASI". Line 50 
shows the concatenation of strings S$ and T$. An 
example of string truncation is illustrated in line 60. 
A technique for isolating the first character of a 
string using double subscripts is shown in line 100. 
This double subscript method is useful for 
examining a user response. For example: 

10 DIM ftS<5J 

20 PRIHT "DO YOU WANT TO CONTINUE? YE5 

OR NO" 

30 INPUT as 

40 IF flS(l,l)="Y" THEN GOTO 60 
50 END 



This routine examines the first character of the user's 
response to line 20. Any character in a string can be 
isolated by double subscripts when both subscripts 
are set equal to the appropriate character number. 
It would be impractical (not to mention tedious) 
to demonstrate all possible single and double 
subscript combinations for defining strings in this 
article. As with any programming technique, 
experience is the best teacher. Therefore, the reader 
is encouraged to experiment on his/her own. 

ATARI String Functions 

String operations are greatly enhanced by the use 
of String Functions. Some of the brief descrip- 
tions of String Functions given in Chapter 7 of the 
ATARI BASIC Reference Manual require further 
explanation. 

Variables in ATARI BASIC are either numbers or 
strings of characters. Often times it is convenient to 
treat a numeric variable as a string or to treat a string 
variable as a number. Numeric variables can be 
converted to strings and string variables can be 
converted to a number by two String Functions, 
STR$ and VAL. The following statements show how 
the function STR$ converts a number to a string: 



10 DIM S$£20} 

20 5S=STRSfl7) ;PRINT 5S 

30 P=2»5S: PRINT P 

40 5Sr5TRS{10/3J : PRINT 5$ 

50 5S=5TRS(22E17J :PRINT 55 

60 PRINT 5S(4,43 



17 

ERROR 

3.J333JZZ:i 

2.2E+18 

E 



Line 20 defines string S$ to be the two-character 
string "17". Although S$ is equal to "17", it is a 
string variable and, as line 30 shows, it is illegal to 
attempt to perform an arithmetic operation on a 
string. Lines 40 and 50 show two more examples of 
converting a number to a string. 

The VAL function converts a string into a 
number. For example: 

Statement Printed Results 

10 DIM 5SC83 :5S="25":PRINT 5S 25 

20 PRINT 50R C5S3 ERROR 

30 PRINT 5nRtUALC5S)) ........ 5 

40 5S="36TT":PRINT 5QRfU6LC5S)) 6 

50 5S="X3.5TT":PRINT 5QRfUAL(5SJ) ERROR 

50 PRINT 2*VflL(5S(2)) 7.2 

Line 10 defines S$ as a two-character string, namely 
"25". Line 20 is an illegal statement because you 
cannot perform an arithmetic operation on a string. 
The VAL function in line 30 converts string S$ to 
the numerical value of 25. Line 30 also performs a 
square root operation. Lines 40, 50, and 60 show 
that string S$ can contain non-numerical characters 
but the VAL function can only be applied to 
numerical characters. 

There are two additional String Functions that 
convert variables from string to numeric and vice 
versa. These two String Functions are ASC and 
CHR$. They deal primarily with obtaining the 
ATASCII decimal code of a character and obtaining 
the ATASCII character corresponding to a decimal 
number. 

Let's consider ASC(sexp) first: 



Statement 

10 DIM ftSt5J :flS="WWXyZ" 
20 N=flSC{0S5 :PRINT K . . 
30 N=fl5C£ftS(4)3 :PRINT N 



Printed Results 



,86 
,89 



Note that if the string expression (sexp) is a string 
name, A$ in line 20, the ASC(A$) function returns 
the decimal ATASCII code for the first character in 
the string. 

Line 20 sets a numeric variable N equal to the 
decimal code for the first character in string A$. The 
decimal code for any character in a string can be 
obtained if subscripts are used, as shown in line 30. 
The corresponding decimal code for ATASCII 
characters can be found in Appendix C of the 
ATARI BASIC Reference Manual. 

The String Function CHR$ performs the opposite 
operation of ASC. CHR$ is used to obtain the 



PAGE 38 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



ATASCIl character whose corresponding code 
number is an integer from to 255. CHR$ has the 
format: CHR$(aexp). The argument (aexp) can 
range from to 65535. This range corresponds to 
values that can be contained in a 16-bit word. 
However, the CHR$ function only operates on the 
least significant 8 bits of the value (aexp). Consider 
the following examples: 



18 PRINT CHR$C65> 

15 REM PRINTS fl5 "ft" 

28 PRINT CHRSC577J 

25 REM PRINTS ftS "ft" 

38 PRINT CHR$(65.49] 

35 REM PRINTS ftS "ft" 

48 PRINT CHRSC65.5) 

45 REM PRINTS ftS "B" 

58 PRINT CHRS(2.33) 

55 REM PRINTS ftS "B" 

68 PRINT CHR5C-65) 

65 REM ERROR (negative aexp) 

78 PRINT CHR$(65,66) 

75 REM ERROR (one character only 



Line 10 shows the most common form of CHR$; 
i.e., (aexp) is normally in the range of to 255. If 
(aexp) is greater than 255, the BASIC interpreter 
substracts some integer multiple of 256 from (aexp) 
to obtain a number in the range of to 255. Line 20 
shows that CHR$(577) is equivalent to CHR$(65), 
since 577-2x256=65. Lines 30 and 40 show how 
(aexp) is rounded to an integer. Lines 60 and 70 
show two illegal forms of (aexp). 

Often times, for emphasis, it is advantageous to 
display a message in ATARI'S Inverse Video. (On a 
printer, the Inverse Video characters would appear 
as underlined alphanumeric characters. ) A string can 
be converted to Inverse Video with the ASC and 
CHR$ Functions. The reader is encouraged to 
execute the following program: 

18 DIM MSGSdlJ 

28 MSGS:i"_ftTTENTION_" 

38 FOR X=l TO LEN(MSG$) 

48 MSGS (X , KJ =CHRS (flSC (MSGS (K, K) J +128) 

wU NtK I X 

68 PRINT MSGS 

The loop, from lines 30 to 50, obtains the decimal 
code for each character in string MSG$, adds 128 to 
the code value, and then converts the new code back 
to an Inverse Video character. 

Perhaps the most useful String Function is LEN. 
The format of this function is LEN(STRING- 
NAME$). LEN is used to obtain the character length 
of the string STRINGNAME$. For example: 



18 DIM ftS(18) 

28 X=LEN{ft$) .PRINT X 

25 REM PRINTS 8 (ftS is a null stringJ 

38 ft5="ftBCD": PRINT LEN(A$) 

35 REM PRINTS 4 

40 ftS (LEN (ftS}+l}=a$: PRINT ft$ 

45 REM PRINTS ftS "ABCDABCD" 

58 X=LEN(A5) : PRINT X 

55 REM PRINTS 8 



Line 20 shows that the character length of the 
undefined string A$ is zero. String A$ is defined as 
LEN(A$) is printed in line 30. A straightforward 
technique for concatenation is shown in line 40. The 
subscript (LEN(A$)+1) will always point to the 
character position just beyond the last character in 
string A$. A good example of using LEN for con- 
catenation is given on page 39 of the ATARI BASIC 
Reference Manual. 

Although the Logical Operators NOT, AND, and 
OR cannot be applied to strings directly, they can be 
used with the LEN function. For example: 

18 DIM a$(18),B$(ie} 

28 X=NOT LEN (0$) : PRINT X 

25 REM PRINTS 1 (LEN(0$}=8) 

38 ftS="ftB": PRINT flS 

35 REM PRINTS flS "ftB" 

48 X=NOT LEN(AS) :PRINT X 

45 REM PRINTS 8 

58 B$=NOT ft$:PRINT B5 

55 REM ERROR illegal logical operation 

The ATARI BASIC Memory Management cannot 
concatenate strings that have a character length of 
some integer multiple of 256 (i.e. 256, 512, 768, 
etc.). The following routine uses the LEN function 
to guard against this problem: 

18 REM « STRING LENGTH CHECK ROUTINE 

28 DIM SPACES (1 J 

38 5PflCES="_" 

40 FOR 1=1 TO 127 

58 IF LEN(ftSJ=I»256 THEN 0$ (LEN (AS) +1) 

^SPACES 

68 IF LEN(BSJ=I»256 THEN BS (LEN (BS) +1) 

=SPACES 

78 NEXT I 

88 -continue- 

The routine checks the character lengths of the two 
(previously defined) strings A$ and B$. The loop, 
from lines 40 to 70, checks both strings to see if 
either has a length which is an exact multiple of 256. 
If either string does, lines 50 or 60 will add a space 
character to the string, enabling correct string 
manipulations later in the program. 

Basic String Functions Not Available 
in ATARI BASIC 

There are several useful String Functions, found in 
other BASIC Interpreters, which are not available in 
ATARI BASIC. 

String Function Explanation 

LEFT$(A$,I) Returns the LEFTmost I 

characters in string A$. 

RIGHT$(A$,I) Returns the RIGHTmost I 

characters in string A$. 

MID$(A$,I,J) Returns J characters, 

starting with the Ith char- 
acter, of string A$. 

POS(A$,B$) Determines the POSition 

of string B$ in string A$ 
and returns the POSition 
number. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 39 



These additional String Functions can be imple- 
mented by ATARI BASIC String Functions as 
shown below: 

Statement Printed Results 

10 DIM A$ CIO), 65 (10) 

28 fl$-"ftBCDE":PRIIIT ftS flBCDE 

38 REM ** LEFTS FUNCTION ** 

A% VL^ 1-3 

50 DIM X$CLENCA$)) 

68 X$=fl$Cl,I) :PRINT X$ ABC 

70 REM «» RIGHTS FUNCTION ** 

80 KS=/>S{LENCAS)-I+l,LENCftS)) 

85 PRINT KS CDE 

90 REM «» MIDS FUNCTION ** 

100 LET J=2 

110 XSrftS CI, I+J-1) : PRINT XS ... CO 

128 REM *« POS FUNCTION ** 

130 LET BS="DE": PRINT BS DE 

140 FOR 1=1 TO LENCAS) 

150 IF ftSCI,I+LENCBS)-l)=BS THEN 180 

168 NEXT I 

170 1=0 

180 PRINT I 4 



Lines 50 and 60 implement the LEFT$ function, line 
80 performs the R1GHT$ function, line 110 is the 
MID$ function, and lines 140480 are the POS 
function. The above program is not as complex as it 
looks. All operations are based on previously 
discussed principles. This program provides a good 
test to see how much the reader has learned thus far. 
String Comparisons 
As previously noted, the logical (or Boolean) 
operators NOT, AND, and OR cannot be applied 
directly to string variables. However, the following 
Relational Operators can be applied to string 
variables: 



Relational Operator 



Explanation 



< less than 

> greater than 

= equal to 

<= less than or equal to 

>= greater than or equal to 

<> not equal to 



When Relational Operators are applied to strings, 
the BASIC Interpreter converts the string's 
characters to ATASCII decimal code numbers and 
then compares these numbers. Therefore, a 
character's position in the ATASCII chart 
(Appendix C of the ATARI BASIC Reference 
Manual) will indicate its "relation" to any other 
character. 

The execution of the following program will famil- 
iarize the reader with relational string comparisons. 

10 DIM ASC20},BSC20) 

20 ftS="flBCDE" 

30 PRINT ■■ftS=";ftS 

40 PRINT "WHAT 15 BS" 

50 INPUT BS 

60 PRINT : PRINT 

70 PRINT "fl5=";flS 



80 PRINT "BS=";BS 
90 IF ASOBS then PRINT "ftSOBS" 
100 IF ftS<BS THEN PRINT ■■ftS<BS" 
110 IF ftS=BS THEN PRINT "■AS=B$" 
120 IF AS>BS then print •■ftS>BS" 
130 PRINT : PRINT : GOTO 30 

Line 40 prompts the user to define string B$, and 
then Unes 90-120 apply Relational Operators to 
strings A$ and B$. The result of the string 
comparisons are then printed. The user is 
encouraged to input various string characters for B$, 
such as; B$="ABCD" and B$="'ABCDEF". 

Since the decimal codes for the ATASCII alphabet 
are in numerical order, the Relational Operators are 
useful for sorting names in alphabetical order. In the 
above program, if string A$ is set equal to 
A$="JONES", the user can define (Input) string B$ 
to be various last names and verify the alphabetical 
sorting. 

Any Relational Operator expression, A$=B$ for 
example, will return a value of 1 (if the expression is 
True) or a (if the expression is False). This allows a 
Logical Operator to be applied to string comparison 
expressions. Consider the following: 

10 DIN ASC10),BSC2O) 

20 AS="ABCD":BS="BBCD" 

30 IF NOT CaS=BS) THEN PRINT "ASOBS" 

40 IF NOT AS=BS THEN PRINT "ASOBS" 

The result of the string comparison (A$=B$) in line 
30 returns the value 0. Therefore, the expression 
NOT ( A$=B$) is equal to 1 which initiates the print 
operation. Line 40 illustrates that the string 
comparison expression need not be contained in 
parentheses. 

String Locations in Memory 
The Special Purpose Function ADR(String- 
name$) permits a programmer to ascertain, and 
control, where strings are stored in RAM memory. 
Consider the following statements: 

Statement Printed Results 



10 DIM ASC22),BSC10) 
20 AS="ABCDE" 
30 PRINT ADR (AS) 
40 PRINT ADR CBS) 
50 PRINT ADR CAS (3)) 



2164 
2186 
2166 



Line 30 shows that the block of 22 memory 
locations, reserved for string A$, starts at location 
2164. Line 40 shows that string B$ starts at memory 
location 2186. Note that: ADR(B$)-ADR(A$)= 
'dimensioned length' of A$. The memory location of 
a single character of a string, ADR(A$(3)) for 
example, can be obtained by the use of subscripts, as 
shown in line 50. The use of subscripts with ADR is 
only legal if the string has been previously defined. 
Delete line 20 and execute the above program to 
verify this restriction. The BASIC Memory 
Management will change the memory locations of 
strings dependent on the number of statements in a 



PAGE 40 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



program. Add the following statements to the above 
program and note the new values for ADR(A$) and 
ADR(B$) when the program is executed: 

60 PRIHT 
78 PRINT 

The Special Function ADR is useful if the starting 
location of a string is needed in a USR (User) 
machine language subroutine. 

There are occasions when the programmer must 
control the memory location of a string. This can be 
accomplished with a 'filler string'. Assume that 
string B$ must start at memory location 3000 and 
consider the following routine: 

Statement Printed Results 

le DIH a$(l} 

28 PRINT ADR (AS) 2185 

38 DIH FSC3880-flDR(flS3-l) 

48 DIH B$(ie} 

58 PRINT ODRCF$) 2186 

68 PRINT ADR (6$) 3688 

Line 10 establishes the memory location of the first 
dimensioned string A$. Line 30 establishes the 
dimensioned length of the filler string F$. The 
expression (3000'ADR(A$)4) sets the length of F$ 
to 814, so that F$ starts at location 2186 and extends 
to location 2999. String memory locations are 
established in the order that the strings are 
dimensioned. So, in the above example, the filler 
string F$ had to be dimensioned prior to B$. 
Conclusions 
Although ATARI BASIC is not the most powerful 
BASIC available, it is sufficiently flexible to imple- 
ment all typical string operations. ATARI BASIC is 
certainly more powerful than the ATARI BASIC 
Reference Manual indicates. Any reader willing to 
experiment with string functions and operations, 
will readily become proficient in programming string 
manipulations in BASIC. D 



Attention 
Fill 'Er Up! Fans 

Now you can convert Issue #10's popu- 
lar machine-language game Into a 
fast-loading boot disk or tape! For a 
FREE list of program modifications, 
send a stamped, pre-addressed en- 
velope to: 

Fill *Er Up! Conversion 

A.N.A.L.O.G. Computing 

P.O. Box 23 

Worcester, MA 01603 



ATARI 400/800* UPGRADES 
FROM NEWELL INDUSTRIES 
GET THE MOST OUT YOUR COMPUTER 

FASTCHIP - ATARI 400/800* $41.95 

FASTCHIP can give you up to three and 1/2 times 
the speed of the original floating point routines. 
Atari BASIC uses these routines tox 'aVBnist 
everything. FASTCHIP is a pin compatible ROM that 
replaces the original. It can be installed in 
minutes, and is a permanent replacement for the 
original rom. There are no modifications, cuts, or 
wires to add. FASTCHIP comes with a 90 day full 
warranty. 

Some reference times (in seconds). 
Function executed 1000 times in loop. 

FUNC:0LD ROM:FASTCHIP FUNG : OLD ROMiFASTCHIP 

ATN 128 62 CLOG 120 30 

LOG 129 33 EXP 112 34 

A 236 65 COS 84 33 

SIN 85 30 SQR 135 55 



RAMROD MMOS - ATARI 



BOO* ONLY $159.95 (less memory) 
board 



RAMROD is a new operating system board that 
replaces the existing board. It gives the user the 
flexibility of using either the existing operating 
system roms or it is switch selectable to use EPROMS. 
Tliis allows the user to change the operating system 
to meet any needs that might arise, 

RAMROD also addresses the 4096 byte block of 
memory that is not currently accessible in the 
system. It also is switch selectable and may be used 
as RAM, ROM, or a combination. This ram is usable by 
software such as SPREADSHEETS, WORD PROCESSORS, and 
certain LANGUAGES to mention a few, without 
modification to the existing operating system. 
Complete with instructions and recommended 
modifications. One year warranty, 

PLUS, every board comes with OMNIMON ! , a resident 
machine language monitor written by David Young, 
author of DISKSCAN. It features many powerful 
debugging commands like display/alter memory, 
disassembler, printer and 
disk interface has many 
ability to access single 
sequential or linked mode. And you can call it up at 
any time. A sophisticated yet simple program to use. 



disk interface, etc. The 

features, including the 

or multiple sectors in 



WITH 4K RAM 

WITH 12K MEMORY ( 4K RAM, 8K EPROM) 

EPROMS-2732,4Kx8,350 ns. 



$169.95 

$189.95 

$10.00 



OMNIMON I - ATARI 400/800* 



$89,95 



As described above, but comes on a piggyback board 
that plugs into the operating system socket. 



48/52K RAM BOARD - ATARI 400/800* 
WITH 15K TRADE IN BOARD $139.95 
WITHOUT TRADE IN $159.95 

REPLACES EXISTING RAM BOARD, NOT A KIT, 
FEATURES: 200 ns , RAM, GOLD EDGE CONN, 
SOCKETED, FIVE YEAR WARRANTY 



IC' s 



PRO BOWLING VERSION THREE 



fl9,95 
in basic 



The game is ^written in basic and machine 
language and is an accurate simulation of the sport 
of bowling. There are ten skill levels to give 
challenge to the best of computer game players. 
Features redesigned character set, automatic scoring, 
sound, and P.M, graphics, 

REQUIRED ACCESSORIES: 

SINGLE OR DOUBLE DENSITY DISK DRIVE 
BASIC LANGUAGE CARTRIDGE 32K MIN, MEM. 
ONE JOYSTICK CONTROLLER PER PLAYER 

SD/DD SECTOR COPIER - ATARI 400/800* $19.95 
Make up to 153 copies of any single or double density 
disk and just read the source disk once. Supports up 
to 4 drives. Format on duplication option. With 48K, 



two passes copies a full single density disk, 
menu. Easy to use. Boots in approx, 3 seconds. 



Screen 



ORDER C,0,D, or PREPAID. Sorry, no charge cards. 
To order direct: Send check or money order to NEWELL 
INDUSTRIES, 3340 Nottingham In., Piano TX. 75074, Or 
call (214-423-1781). Texas residents add 5% sales tax 
where applicable. Orders outside the U.S. add 3%($2 
min) for shipping. CO.D. orders add $1.50. Call or 
write for additional information. Dealer inquiries 
welcome , 



ATARI 400/800 are Trademarks of ATARI INC. 



EXPLORE A NEW DIMENSION iN SOFTmRE 




When you reach the stage where you need more 
sophisticated software to help you with business and other 
applications, explore the programming power and flexibility 
available to you with systems software from OSS. 

C/65 — Another Powerful First from OSS 

C/65 is the first commercially-available C compiler for both the Atari and Apple machines which actually 
produces assembly language output. 

C/65 supports a very usable subset of the extremely powerful and popular C language. Just as C is used by the 
most sophisticated programmers from the professional and academic communities, so shall C/65 prove to be a powerful and 
much-needed tool for 6502 software developers. 

C/65 supports INTegers and CHARacters, arrays thereof and pointers thereto. Naturally, it also features full recursion, easy 
assembler interface, #INCLUDE, and a non-macro version of #DEFINE. AUTOmatic, global and EXTERNal variables are also 
available. When used with our MAC/65 assembler, C/65 is a powerful and flexible tool... $80. 00 



A Strong Software Family 

Other major systems software products from OSS include: 



BASIC A + 
MAC/65 
TINYC 
BUG/65 



the only logical upgrade to Atari BASIC with extra 
features for games and business programs — $80.00 

the finest and fastest complete 6502 macro 
assembler /editor package you can buy.... $80. 00 

for structured programming, an easy-to-use inter- 
preter, a learning tool.... $99. 95 

a powerful, self-relocatable debugger. FREE with 
MAC/65.... $34. 95 



And More... 

OS/A-+-, the first and finest operating system for BOTH Atari and Apple 11 
computers, is NOW included FREE as a part of every OSS systems software 
package. OS/A+ features a keyboard-driven, easy-to-use command processor, 
several simple resident commands, and logical and readable requests for even the 
most sophisticated utility commands. Versions of OS/A+ for some higher 
capacity drives are available at extra cost. 

NOTE: Unless otherwise noted, all OSS products require 48K and at least 
one disk drive. 

ASK YOUR DEALER, or call or write for our brochure. 

ATARI, APPLE II, and TINY C are trademarks of Atari, Inc., Apple Computer, Inc., and 
Tiny C Associates, respectively. MAC/65, C/65, BASIC A + , BUG/6S, and OS/A+ are 
trademarks of Optimized Systems Software, Inc. 




Optimized Systems Software, Inc. 10379 Lansdale Avenue • Cupertino • California • 95014 • (408) 446-3099 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 42 



ATARI PASCAL-AOOODPRODUCT? 



by Raymond T. Tillman 



In March, 1982, after many promises and much 
delay, ATARI quietly released their ATARI 
PASCAL Language System. However, they didn't 
release it through the expected channels. PASCAL 
was released through the ATARI Program Exchange 
as unsupported software. Adding to that 
disappointment, it required two ATARI 810 disk 
drives. ATARI also said that the program "was not 
suited for learning PASCAL or the ATARI 800 
computer." Furthermore, the absence of a 
compatible assembler (one which generates 
relocatable code), limited debugging tools, and 
incomplete documentation are considered to have 
reduced the usefulness of ATARI'S PASCAL. 
Finally, only part of the PASCAL language system 
was released. Since then, almost nothing has been 
said by ATARI or anyone else about the product. 
PASCAL: A Standardized Language 

Just what is ATARI'S PASCAL? ATARI PASCAL 
is a powerful, structured programming language 
built on the core of a real computer language 
standard: the International Standards Organization's 
draft standard (DPS/7185). This standard has been 
adopted for almost all large computer versions of 
PASCAL. The language system is significantly 
expanded to provide graphics and sound and to 
eliminate some of the shortcomings of standard 
PASCAL. As such, it is a very nice package at an 
extremely attractive price. 

Language Description 

The ATARI PASCAL was written for a double 
density disk drive. In order to run it with the 810 
drive and the current ATARI 800 computer, it was 
necessary to place the files on two separate disks and 
make some other changes. These changes cause some 
small problems, especially if compilation is aborted. 
The compiler expects the system monitor to be on 
the same disk as the compiler. It isn't; there isn't 
room for it. Some consider this a drawback and have 
said that this problem has driven them away. They, 
like ATARI'S top brass, just don't know what they 
have here. 

ATARI PASCAL is a well-written version of the 
standard language with a select few extensions to the 
base and a good complement of library routines. It 
contains all of the standard scalar and structured 
data types associated with PASCAL, as well as three 
additional scalars: BYTE, WORD, STRING. It 
allows absolute variables (defined to a particular 
memory location), external procedures, modular 
compilation (similar to UCSD units, but easier to 



use), bitwise operations, heap management 
(including pointer variables and garbage collection), 
and a host of other nice things. It even provides an 
ELSE on case statements. 

My sources at ATARI tell me that only two bugs, 
both associated with the ABSOLUTE variables, 
have been reported. Some claim to have found 
others, but no supporting documentation exists. 
ATARI also tells me that other parts of the language, 
including random disk access (segmented files) and 
possibly a compatible relocatable code assembler 
have been withheld, presumably because of bugs. 
Maybe they simply won't run on a 48K ATARI. 
Speed and Programming Effort 

PASCAL by nature is not as easy to work with as 
BASIC. You must write your programs with an 
editor. The PROGRAM TEXT EDITOR was 
designed for use with the PASCAL and is an 
excellent product. I use TEXT WIZARD. The 
ATARI Word Processor and Letter Perfect are 
probably not compatible. After writing the code you 
must load the PASCAL interpreter and call up the 
compiler (switching disks when you do). Then you 
can sit and wait. The PASCAL compiler is slow and 
performs three passes. This is not standard for 
PASCAL but it does allow for an easier, more 
flexible compilation. After successfully compiling 
the program you must again switch disks and link the 
program. This can be tricky. After linking the 
program modules you may run the program. If it 
blows up, you may not know why — the debugger 
was not released. 

While the compile and link steps are very time 
consuming, the run time is normally very fast. A 
graphics demonstration using player graphics 
smoothly and quickly scrolls in both vertical and 
horizontal directions, quite unlike a similar 
demonstration program written in BASIC. 

When I ran a test using an algorithm which 
generates Archimedes Spiral, I was rather 
disappointed. It took more than three and a half 
hours to compute and plot the spiral; longer than 
ATARI BASIC! This is certainly because of the 
slowness of the transcendental functions and the 
required conversions between integer and real 
numbers. (Strong data typing is maintained in 
ATARI PASCAL.) 

Memory Map 

There is not a lot of hard information available 
about the ATARI PASCAL memory requirements 
or where each portion of the system resides in 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 43 



memory. ATARI representatives provided me with a 
tentative memory map. It is both incomplete and not 
guaranteed to be accurate. 

ATARI PASCAL Language System 
Tentative Memory Map 

Page Zero 0-007 FH 

Interpreter 0080-OOFFH 

Concatenation Buffer 048-05 7 FH 

Evaluation Stack 0600-0700H 

Interpreter Vector Table 1 DOO- 1 FOOH 

Interpreter Jump Table 1F00-IF80H 
Parameter Compiler Cc~)mms Area 1F80-2000H 
Assorted Program Related 

Operations &. Working Space 2000-9400H 

Monitor 9400-BCOOH 

Screen Area BCOO-BFFFH 

Although page zero is used by PASCAL, the main 
operations, parameter passing and evaluation opera- 
tions are performed in page six and elsewhere. This 
can be devastating to those accustomed to using page 
six for other things. In PASCAL, it is not available to 
the user. 

Machine language modules may be added to 
PASCAL programs as inline code. These must be 
fully relocatable. Since parameters are passed on the 
evaluation stack (page six), programmers must per- 
form the extra task of maintaining that stack when 
they use machine language subroutines. 

Comparisons to Other Versions of 
PASCAL — UCSD PASCAL 

ATARI PASCAL and UCSD PASCAL are very 
similar. The minor differences which exist between 
the ATARI PASCAL and the UCSD version should 
cause few problems; in almost every instance, the 
ATARI version is more flexible. The major dif- 
ferences between the USCD PASCAL and ATARI'S 
PASCAL is in design philosophy, speed of compila- 
tion, and the hardware differences between the 
ATARI and other microcomputers. 

UCSD PASCAL is not simply a computer 
language, nor does it comply wholly with the ISO 
draft standard. It is a complete software system in- 
cluding a filer (DOS), compiler, linker, assembler, 
program editor, and a pseudo-code (P-code) inter- 
preter. These make up the operating system and are 
not part of the programming language. The language 
core requires 40K on the APPLE II computer. It 
includes both RAM and ROM (optional) segments 
and apparently replaces the APPLE IPs base opera- 
ting system. APPLE PASCAL programmers must 
learn a new operating system anci file manager to use 
that product. Benchmark tests reported by John 
Sommer in MICROCOMPUTING magazine (April, 
1982) showed that the APPLE II PASCAL was only 
twice as fast as the APPLESOFT BASIC. 

The ATARI PASCAL is smaller, uses the ATARI 
filemanager and operating system, and is entirely 
RAM resident. This concept is in full accord with the 



ISO standard. It appears that the runtime environ- 
ment may leave as much as 28K for programs. Pro- 
gram compilation is much slower than the UCSD 
PASCAL and is restricted to about 300 program 
lines per module but multiple modules are allowed. 
Linkage of modules is also restricted, but it is 
possible to chain modules (passing parameters 
between modules.) 

ATARI PASCAL has been shown to execute as 
much as seven times faster than the APPLE PASCAL 
in some benchmark tests. But, since ATARI'S 
PASCAL uses the internal floating point routines 
and BCD REAL numbers, any operation using 
REAL numbers is terribly slow. 

As with the UCSD product, ATARI PASCAL 
uses a P-code interpreter. However, the P-code has 
been optimized for the 6502 CPU. Similar compila- 
tion and link time error checking schemes are 
employed. Modular compilation is possible, actually 
even easier to perform, with the ATARI PASCAL. 
One significant advantage for the UCSD PASCAL is 
segmented files (random access files). The ATARI 
PASCAL segmented files library has not been re- 
leased, although it exists. 



ATARI* 



PAYROLL SOFTWARE 

FOR 

THE ATARI® 800 ' 



Miles Payroll System'^ is an advanced and comprehensive payroll accounting system 
designed for businesses today. Cumulative totals are maintained for each employee, as well as 
complete reporting, ctieck writing, and W-2 reporting. Some leatures include 

• Random access file organization (or last updating of individual records, 

• Allows weekly, biweekly, semimonthly or monthly pay periods. 

• Completely menu-driven and user-fnendly. 

• flegular. Ovenime. Double time, Sick. Holiday. VacatiO(\ Bonus and Commission earning categories 

• Payroll deductions include Federal W/H Tax, State W/H Tax, City W/H Tax, PICA. SDI, Group 
Insurance and 3 user-defined deductions. 

• Tax sheltered annuity deduction capability for IRAs and other lax shelters, 

• State and Federal Unemployment Insurance maintained, 

• Complete file viewing and editing capability, 

• Maintains up to 50 employees 

• Up to 10 user-defined Worker's Compensation classifications 

• Federal Tax tables may be changed in only 1 5 minutes each year by user when IRS changes lax. 

• Table method used for State and City Tax, allowing compatibility with any stale's or cil/s tax 

• Produces 15 different reports, including W-2 Forms Report, 

• Checks calculated and printed automatically. 

• PROGRAM ENABLING MODULE~protectsvaluablepayrolliniormationfromunauthorizedusers 

• 3 user-defined payroll deductions to accommodate customized leedssuchas savings, profit 
sharing, tax shelters, pensions, etc. 

• Pay period, monthly, quarterly and yearly cumulative totals maintained for each employee, 

• Automatic Input error detection and recovery protects system from user-generated errors, 

• Easy-to-follow, detailed, and comprehensive user's manual andtutonalleads the user step 
by step allowing anyone with little computer experience to easily operate the package. 
Includes Index, 

• Color, sound, and graphics utilized for user ease, 

• Maintains employee pay history, 

• Allows for manual payroll check writing, 

• Packaged in a handsome 3-ring deluxe pocketed binder with 3 diskettes and manual, 

• Reasonable price. 

See your local store, or contact Miles Computing, 

)k A MILES COMPUTING 

/ W m;| 7136 Haskell Ave. #204 

^ ™ (213)994-6279 

Atari IS a registered trademark of Atari, Inc 

MilesComputing, MILES PAYROLL SYSTEM. PROGRAM ENABLING MODULE are trademarks 

of Miles Computing. Van Nuys, California, Not affiliated with Atari, Inc. 

$179.95 Requires 32K and two Atari* SIC" disk drivers Payment in US, funds requi'edwitti 

order. California residents add 6.5% sales tax, C.O.D. or prepayment only. Dealer inquires 

welcome. 



PAGE 44 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



PASCAL/MT+, an ATARI PASCAL 
Look -Alike 

ATARI PASCAL is not alone in its design. A 
review of the CP/M PASCAL/MT+ compiler mar- 
keted by Digital Research is revealing. Comparison 
of the documentation for the ATARI PASCAL and 
the PASCAL/MT+ showed that page after page of 
the language descriptions are identical or nearly so. 
Examples used are in almost all instances identical. 
Special functions, not part of the standard PASCAL, 
are the same. In one case, an odd comment is found 
in the ATARI document, in the description of the 
ADDR function, on page 4L It reads, "Output is 
system dependent." That doesn't make sense in the 
ATARI manual, but in the CP/M document, it 
makes a lot of sense, since the PASCAL MT+ is 
designed to run on a variety of microcomputer 
systems. It and the ATARI version produce relo- 
catable MICROSOFT compatible code. 

Additional surprises come when looking at the 
system monitor and at descriptions of the runtime 
link modules. Both products have the same user 
interface and most of the PASCAL/MT+ link 
modules have counterparts in the ATARI version. 
There are differences. The PASCAL/MT+ docu- 
mentation is more complete and the language is more 
powerful. It also requires 64K of RAM. 

People at ATARI tell me that MT Microsystems, a 
division of Digital Research, the authors of 
PASCAL/MT+, wrote ATARI PASCAL. However, 
it was written for a super ATARI with 128K of RAM 
— a product which has not seen the light of day, and 
for the 815 disk drive which has been shelved. 
ATARI wasn't able to get this super machine to work 
correctly so it and PASCAL were shelved. Also, the 
story is that ATARI wanted a UCSD PASCAL, but 
couldn't get it, so they decided that nothing was 
better than what they had. Pressure from ATARI 
owners and from some people within the company 
caused ATARI to release the PASCAL. But, it was 
either APX or nothing. 

Incompatibilities with ATARI PASCAL 

I have learned of a few problems with the ATARI 
PASCAL and its usefulness with certain third source 
hardware and software. First, the compiler and 
linker modules will not work with the Corvus Hard 
Disk. Also, the RAM DISK is not compatible. You 
cannot compile a program using the PER COM Disk 
Drive in the double density mode or using the mod- 
ified DOS. However, programs can be compiled in 
single density and then transferred to double den- 
sity tor execution. The ATR 8000 will work with the 
PASCAL package exactly in the same way as the 
PERCOM drives. It is possible that the RAM PAGE 
by MAXXAM Dataware Corp. will be compatible 
because the several bytes of memory which it re- 
serves for its use are F7CO-F7C3H, outside the 
PASCAL usage area. 



Summary 

ATARI PASCAL is an extremely well designed, 
powerful programming language for the ATARI Per- 
sonal computer. Although it compiles programs 
much slower than does USCD PASCAL, it more 
closely follows the language standard. Execution 
speed is generally faster. 

PASCAL is not getting the support it richly 
deserves from ATARI. With the limitadons placed 
on it by release of only part of the system, by the 
total memory available to it, and with the lack of ade- 
quate documentation, ATARI PASCAL is greatly 
handicapped. Still, until people begin using it and 
start screaming for better documentation, ATARI 
will not provide any support, nor will the missing 
parts of the system be released. I for one, think that 
ATARI PASCAL has the potential to become one of 
the best, if not the best product available for the 
ATARI program developer, but only if ATARPs top 
brass will wake up to its potential. D 



The ATARI Pascal Lani;,ua}ic S>'stc'm can he pur- 
chased from the ATARI Proi^ram Exchun.^e, P.O. Box 
3705, Santa Clara, CA 95055. $49.95 Disk. Order 
number APX- 20102. 



NEW 
. /POWERFUL 
PRODUCT! 




FOR 

ATARI 

400/800 

HOME COMPUTER 

OMNIMON! 

A RESIDENT MONITOR 

Software: DAVID YOUNG 
Hardware: BILL WILLIAMS 




OMNIMON! is residenl. Il is always available bui requires no user memory! 
Resides in unused SCOOO page. 

OMNIMON! gives you complete control. Inlerrupi, examine and manipulate 
any program in memory or on disk! 

' OMNIMON! can aid recovery from operator errors and glitches! 

OMNIMON! has ncxible disk 1/0 independent of DOS. It supports SD or 
DD and sequential or linked modes. Load a DOS file or edit raw 
sector data! 

' OMNIMON! has many debugging tools: display/alter memory or 6502's 
registers, disassembler, search memory, single step, printer dump, etc. 

' OMNIMON! is a trademark of CDY Consulting (214) 235-2146 
ATARI 400/800 is a trademark of ATARI, Inc. 



THE GALAXY AWAITS YOUR COMMAWD. 



nh • 



W^/P: 




0i&k 



When SSI introduced THE COSMIC BALANCE'", it was hailed as one of the finest tactical 
space game ever made: It not only save you starship combat that vv'as fun, fast and funous, it 
also let you design- your ships. You became both starfleet commander and starship architect. 

Now we are proud to present its strategic-level sequel — THE COSMIC BALANCr 
allows all you aspiring Galactic Emperors out there to plot the growth of your space kingdom 
— from a few, paltry planets to the entire Galaxyl You discover and colonize planets, establish 
Commerce nets, organize production of necessities, and send starships out on missions. There 
are .five scenar-ios prepared for you, but you arz free to create your ovfli. 

No matter how you play it, THE COSMIC BALANCE H'" is a game of interstellar conquest 
And the only way you're going to enlarge your share of the cosmic pie is to win starship 
battles against your opponent (which can be a human or the computer). 

When actual combat occurs, you can let the computer resolve it instantly. Or you can slug 
it out in all its blazing glor/ by using THE COSMIC BAI.ANCE™. .The battle outC(S^"""' """'""'" 
incorporated into the strategic game. 

Space may be what these games are all about, but there isn't enough-of it here to 
adequately describe them.' But why read when the Universe beckons? Plot a course to the 
nearest computer/game store and get these games today! You havfe a'destiny to fulfill — a 
destiny that lies out there among the stars. . ■ . 



>- 



ON DISC FOR 
THE APPLE 
AND ATARI. 




for the Atari 400/800. 



Apple IS a registered trademark of Apple Computer, ln< 



'games from SSI 



If there are no convenient stores n'earyou, VISA and MASTERCARD . 
tiolderscan order direct by calling 800-227-1617, x335 (toll free). 
In Califomia, call 800-772-3545, .x335. 



To order by mail, send your check to; Strategic Simulations Inc, ' 
465 Fairchild Drive, Suite 108, Mountain View, CA 94043. California 
'residents, add 6'/2% sales tax. • 



WRITE FOR A FREE COLOR CATALOG OF ALL OUR GAWES 



PAGE 46 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



WHAT THE SOFTWARE REVIEWERS ARE 
SAYING ABOUT YOUR DOCUMENTATION 



by Jessie Gunn Stephens 



Software reviewers are, by and large, articulate folk. When 
a program pleases them, a warm, friendly chuckle seems to re- 
verberate beneath their published prose. But when a program 
frustrates them, you can practically hear the grinding of their 
teeth. And the package component most likely to activate that 
crunching, damning sound against the programs you're trying 
to market seems to be the user documentation. 

Reviewers like to write about documentation, and an in- 
formal survey I've been conducting over the past six months 
indicates that they know a lot, in general terms, about what's 
wrong with your documentation and what you should do to 
correct it. If you're interested in producing documentation 
which will impress reviewers as favorably as your software 
does, perhaps you'd like to know what they have to say. 

Identifying Users and Their Needs 

The most serious complaint reviewers lodge against user 




documents is that they often don't properly 
identify the readers and set out to meet those 
readers' needs. Or, do you know u'ho is going to 
want to use your software to accomplish what in 
the real world? If you don't, your user guides 
won't be able to fill users' needs, because you 
won't know what they are. 

"The guide tells me how the program works," 
writes the reviewer, "but what I want to know is 
what I can make it do for me." Only other pro- 
grammers are likely to have much interest in how 
your program works. Users want to know how 
to make it accomplish the specific tasks they 
need done. 

To improve your user documents, take the 
time to form a clear picture, by research if neces- 
sary, or personal interviews with prospective 
users, of who those people are and what they 
want your software to do. Then, concentrate on 
instructing them in how to do those very things. 
Once you've clearly identified the users and their 
needs, it's much easier to plan and write docu- 
ments from the user's perspective, rather than 
from the programmer's. 

Respecting the User 

Reviewers become particularly incensed, as I 
believe most users would, by documentation 
which fails to take itself seriously. All too often, 
documentation is a last minute effort, a few 
pages slapped together just before the package 
goes out the door. Careless preparation shows; 
poor organization, inaccurate descriptions, in- 
appropriate humor (at the reader's expense), 
typographical and spelling errors, and bad re- 
production are all marks of the documentor's 
lack of respect for the user. 

If you don't respect your users, don't expect them to 
respect you or your product. 

The corrective for such poorly conceived and 
executed documents is, of course, time and ef- 
fort. Read that as "money," if your time and 
effort are worth anything. But remember, a slip- 
shod product condemns itself in the user's hand. 

Honesty in Packaging 

Another source of user discontent is the hack- 
work product which dishonestly disguises itself 
in plush packaging. You've never heard moral in- 
dignation until you've heard a user gripe about 
being deceived into judging a user guide by its 
cover. Of course, we all know better than to do 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 47 



such a naive thing, consciously, at least. But our 
culture teaches us to consider appearance a valid 
criterion of quality, in everything from choosing 
a mate to buying an automobile. Appearances 
are important in our consumer advertising- 
oriented society. But no amount of plush pack- 
aging can compensate for an inferior product 
between the covers. And finding trash bound in 
embossed leather tends to raise reviewer's blood 
pressure because it leaves them feeling that 
someone has deliberately tried to hornswoggle 
them, and they don't like it. Can you blame 
them? 

Of course, no one is suggesting that you 
shouldn't package your documents as attractive- 
ly as possible, merely that you ensure that the 
contents rrverit their covers. Packaging cannot 
substitute for quality. 

Providing Adequate 
Examples & Illustrations 

Statistically, the complaint which most often 
crops up in reviews concerns the lack or inade- 
quacy of examples and illustrations. Even the 
experienced computerist needs examples when 
learning to operate a new program, and for the 
computer novice, examples and practice exer- 
cises can mean the difference between learning to 
use your program at all or shelving it with a curse 
of frustration and swearing never to buy another 
product with your name on it. 

There's no such thing as too many examples, 
too many "for instance"s, "let's do this toge- 
ther"s, "let me show you how"s, "this is how it 
will look"s, and "such and such will appear on 
your screen"s. You don't have to be an artist to 
provide your readers with an image of their dis- 
play screens. A simple box will do; they'll catch 
on to the convention at once. The more you can 
reinforce prose with illustrations, instructions 
with examples, and usage with practice exercises, 
the stronger your documents will be. 

Testing Documents 

"The manual has lots of examples, but at least 
half of them didn't work," gripes the reviewer, 
his tone resentful and tinged with incredulity. 
The reader and prospective buyer is very aware 
of the indictment, even if it remains unwritten: 
"This guy didn't even bother to test out the ex- 
amples in the user's guide. Think twice before 
deciding to trust either his document or his soft- 
ware." 

A full-out beta test of your user documents is 
the only way to assure their accuracy and com- 
pleteness. To make this test mean anything, you 
must approach it as carefully and with as much 
integrity as you do the testing, debugging, and re- 
testing of your software. 

The purpose of testing software is not to prove 
that it works, but to discover the places where it 
doesn't work. Test documents with the same 
goal in mind, and correct the flaws your testing 
uncovers just as assiduously as you correct soft- 
ware flaws. 



Providing Usage Tools 

The best documents are those which aid the reader. They 
provide information in logical units and in conventional 
order. Indexes grace them. Tables of contents map them clear- 
ly, guiding readers straight to the information they're looking 
for. They frequently isolate technical or other special material 
into appendices or even separate manuals. Also, such docu- 
ments are clearly designed for the specific package version the 
customer holds in his hand. 

Maintaining Documents 

If your package exists in more than one version, give some 
careful thought to the need for more than one version of your 
user documents. It's not uncommon for an irate reviewer to 
lambast a package upon finding that the documentation didn't 
reflect the version of the software he had in hand. If you modi- 
fy your package through updates available to customers, be 
sure you provide updates for their documentation, as well. 

Software reviews appearing in computer magazines do im- 
pact your sales. You know that they're written for the most 
part by computer-literate people, not novice users. Experi- 
enced in the use of a wide range of software tools and applica- 
tions, such writers aren't likely to think themselves dumb, 
clumsy, or otherwise at fault when they encounter difficulties 
in the use of your product, particularly difficulties which 
might have been precluded by more effective documentation. 
They know what they're talking about. You might do worse 
than to listen to them. D 








■m 




Arcade Excitement for Youfr 
Atari" Home Computer 

Midway's GORF 

"Faithful to the arcade 
^ version." —Book ol 
'W Atari Software 1983 
f In the dark reaches of 
•q hyperspace, conlront the 
1 jffMM,jm fierce Gorfian Empire. Battle ' 
t- =«'!®!aa_ V, Gor,s Drojds, Lasers and 

Subquark Torpedoes in your attempt to 
survive. Multi-screen action for one or two , 
players. ROM Cartridge or 24K disk. 







Midway's 
WIZARD OF WOR 

"An action-packed 
shoot-em-up: an outstanding 
\ job."— Book ol Atari 
Software 1983 

Battle hideous and deadly 
creatures of doom. Survive the 
changing mazes and defeat the fiendish Wizard of 
Wor. Multiple screens, simultaneous one or two- 
player action. ROM Cartridge or 32K disk. 



lagus 



DELUXE INVADERS 

"By far the best Space Invaders 
y, program ever released for a personal 
. computer.'— £/ectron/c Games 

Be warned! The Invaders have broken 

arcade boundaries to bring their 

awesome challenge to your home 

computer The better your defense, the 

more fierce their assault. Nine difficulty levels. One or 

Iwo-p/ayer action. ROM Cartridge or 16K disk. 



ANTI-SUB PATROL 

N£W! Tactical Search and Destroy IVIIssion 
Anti-Sub Patrol puts you in command of a 
squadron of sub-hunting destroyer escorts. 
Your mission — rid the seas of two subs whose 
single goal is to blast you from the waters. 
Stand by for suspense! 32K disk, 24K cassette. 



COMING SOON FOR EVEN MORE FUN: Da Fuzzf^, Lifespan" 
Rockball ' ". Eyes ' ", and Castle Hassle. 

Ask lor Roklan Software at leading software dealers nationwide. 



^m^^ 




' 3335 N. Arlington Heights Road 
Arlington Heights, IL 60004 

S^*l1' nu,"^!?'/'*", m"'^T"J' "' *'."'• !""= G""*' " •"<* Wi"'" ol Wor'" are lrad>niark> oTllally/Mlclway MIg. Co. Da Fuzz 
Rockball' " and Ey..' " are trademarks o( Techslar. Inc. Lifespan ™ I. a trademark of AdmacAlam-Flyghl. ol Panel., Inc 



ATARI® 



ADVENTURE INT'L 

Sea Dragon (d/c) 

Diskey (d) 

SAGA#1 (d) 

SAGA #2 (d) 

ATARI 

Centipede (r) 

Galaxian (r) 

Defender (r) 

Dig Dug (r) 

BIG FIVE 

Miner 2049er(r) 

DATASOFT 

Zaxxon (d/c) 

Sands of Egypt (d) 

Clowns & Balloons 

(d/c) 

Canyon Climber (d/c) . . 

EPYX 

Star Warrior (d/c) 

Rescue at Rigel (d/c)... 
Datestones of Ryn (d/c) 

Dragon's Eye (d) 

SIERRA ON-LINE 

IVIaurauder (d) 

Wall War (d) 

Dark Crystal (d) 

Lunar Leeper (d) 

SYNAPSE 

Flamelords (d/c) 

Drelbs (d/c) 

Necromancer (d/c) 

Shadow World (d/c) ... 



ggcfflPfRi 



COMPUTER SOFTWARE 

SPECIALS? 

NO. THESE ARE OUR 

EVERYDAY LOW PRICES 



= Disk C = Cass R = Cart. 

Prices Subject to Change 

Send for Free Catalog 



PHONE ORDERS: 

1-800-637-3095 
IL. AK, & HI Call: 
1-217-367-5774 

MRS.: 9-6 MON. -SAT. 

MAIL ORDERS TO: 

SECTOR ONE 

1001 BRIGHTON 

URBANA, IL 61801 



Add S2.00 for postage and handling within the 
continental United States. Add S4.00 for Canada or 
Mexico. $6.00 for Alaska or Hawaii, and S 1 0.00 for 
other international orders • Mastercard and Visa 
orders add 4% service charge (Include card ^ and exp. 
date) • Personal checks and M.O. also accepted • 
Illinois residents add 5% sales tax • Please specify 
computer type • MOST ORDERS SHIPPED WITHIN 
24 HRS • All orders must be in U.S. funds. 



Atari IS a registered trademark of Atari, Inc. 



ATARI® 





LIST 


OUR 




PRICE 


PRICE 


DATASOFT 






Text Wizard (d) 


..99.95 


66.00 


Spell Wizard (d) 


..79.95 


52.75 


Basic Compiler (d) 


..99.95 


66.00 


Lisp Interpreter (d) 


124.95 


82.50 


DON'T ASK SOFTWARE 






S.A.M. (d) 


. . 59.95 


39,50 


EOU-WARE 






Compu-Read (d) 


•2^5 


19,75 


Compu-Math/Fractions 


fe* 


^ 


(d) 


WmEu 


P6.50 


Compu-Math/Decimals 






(d) 


mwm^m 


UK 


.f^^ 


iit^tfiAltt 


Letter Perfect (d) 


149.95 


107.26 


Data Perfect (d) 


..99.95 


71,50 


Edit 6502 (r) 


199.95 


143,00 


SPINNAKER 






Snooper Troops #1 (d) 


..44.95 


29,75 


Story Machine (d) 


..34.95 


23,00 


Face Maker (d) 


..34.95 


23.00 


SYNAPSE 






File Manager 800+ (d| 


..99.95 


66.00 


Disk Manager (d) 


..29.95 


19.75 


Page 6 (d) 


..34.95 


23.00 


Syn Assembler (d) 


..49.95 


33.00 


VISICORP 






Visicalc (d) 


250.00 


175.00 


ANCHOR AUTOMATION 






Signalman Modem 






MKII 


..99.00 


76,00 


VERBATIM 






MD525-01 Box of 10 


..49,00 


27.50 



AND MUCH MORE 



AND MUCH MORE 




AVAILABLE FROM MOST DEALERS 

WRfTE FOR A FREE CATALOG 

4565 Cherryvale Ave., Soquel CA 95073 

CALL FOR ORDERING INFORMATION 

MC/VISA/COD: (800) 692-9520 OR (408) 476-4901 



Noiv 



OflC; 



Experience the ^a«sef,e, 

MicroProse Challense!!! 




CHOPPER RESCUE 

Zip up your flying suit and strap yourself into your sleek assault chopper: 
CHOPPER RESCUE challenges your skill and daring. Pilot your nimble 
craft through the treacherous underground labyrinth. Search out and 
rescue the captives trapped inside. Danger approaches from all sides as 
defenders fire winged missiles and sparkling energy bursts at your fragile 
craft. But you are not defenseless, your explosive tipped rapid-fire 
missiles dart out to blast a path through the dense minefields. Thread 
your bomb directly into the heart of their pulsating nuclear furnace. And 
just when you think the path is clear, a swift patrol drone appears from 
behind a ledge, spitting missies as you scramble for a firing position! 
CHOPPER RESCUE features three scenarios, multiple skill levels, and 
competition in solo or team configurations for 1 to 4 players. Immerse 
yourself in the non-stop excitement of CHOPPER RESCUE. You'll keep 
coming back for more! 
Requires ATARI® 32K, Disk or Cassette . . . $29.95 



HELLCAT ACE 



HELLCAT ACE is a superbly realistic re-creation of WWII Air-to-Air 
combat in the Pacific using a fully three-dimensional airspace. HELLCAT 
ACE puts you in the fighter cockpit with its unique pilot's eye view. To 
escape and destroy the tenacious enemy fighters, HELLCAT ACE allows 
you a full range of high-performance aerobatics; including loops, stalls, 
rolls, immellman turns, and spins. The fifteen well documented scenarios 
include combat air patrol, night action, and kamikazes — and, if things 
get out of hand, you can bail out or attempt a water landing in your 
damaged fighter! HELLCAT ACE includes multiple skill levels and options 
for up to four players. Can you avoid being shot down and win five 
victories to become a HELLCAT ACE? 
Requires ATARI® 40K, Disk or 32K Cassette . . . $29.95 

For aerial combat challenge and excitement over Europe in WWII fly the 

SPITFIRE ACE! 

Requires ATARI® 40K Disk or 32K Cassette . . . $29.95 





FLOYD OF THE JUNGLE 

Looking for a fun game you can play with yourfamily and friends? FLOYD 
OF THE JUNGLE is a great game up to four people can play simultane- 
ously! Can you be the first to guide Floyd through the jungle perils to save 
the lovely Janice? It isn't easy! Floyd must leap the poisonous snakes, 
climb the slippery vines, ride the elephants, and cross the raging rivers. 
FLOYD OF THE JUNGLE includes fully-animated wild animals, music, 
sound effects, and five different multi-color jungle adventures. 
Requires ATARI® 32K, Disk or Cassette . . . $29.95 



MicroProse Software is dedicated to bring you games that will challenge you far beyond the first few plays. We promise you hours of 
excitement and pleasure, Ourgamesare created using "MicroProse", our own proprietary assembly language gaming system, and are 
available at select computer stores. 



PHONE: (301) 357-4739 



For Fast Delivery by C.O.D., 
MasterCard or Visa ... Or 
Send Check or Money Order . . . 
Please add $2.50 shipping/handling. 
Maryland residents add 5% tax. 



MicroProse Software 
One Caribou Court 
Parkton, Maryland 21120 



Dealer Inquiries Welcome! 



ATARI® is a registered trademark of Atari Inc. 



r 




Expand youA ATARI 400* 16K to a 
^ull ASK by a6A.ng ouA 4S400 4iK 
Ram wpgnxuid. e.xpayif,^on k^X ! 1 ! 1 1 

*** Expand your 16K Ram board to 48K for 
the price you would pay for most 32K Ram 
expansions! ! ! ! 

***Easy to follow step by step installation 
instructions with detailed drawings. 



**A*«AA*AAAAAA*AA*AAA«*****************AA AAA/>A*i 



for only 
$99?5 



Free shipping In USA 



SEND CHECK.HONEYORDER. 
or BANK CERTI-CHECK 




allow 4-6 wks for per. 
chec k. fWIL TO : 

POLLY PRODUCTS 

of Riverside 

P.O. Box 8485 
Riverside, California 
92515-8485 

Ca. Res. add 6% TAX. 
ATARI 400* is the trademark of ATARI, INC. 



Atari® Users!! 

NOW AVAILABLE... 

MIGHTY BYTE™ Disk Copier. A backup copier 
that allows you to select sectors, identify and 
write bad format. Copy almost any disk. The most 
powerful copy system available today on Atari® 
400/800 computers. 



Only $29.95 + $2 shipping 

VISA & MASTERCARD call now 
(81 5) 968-2228 for fast delivery 

Software Authors and Users; call or write for fur- 
ther information on our complete line of Atari® 
compatible backup systems and services. 

Can't slow that new drive below 250rpm? 
We modify your drive $10.00 
You modify with our parts $5.00 

MIGHTY BYTE COMPUTER 

828 Green fvleadow Ave., Dept. AG 
Rockford, \\\ino\s 61107 



tc 



ti 



SOFTWARE GALLERY 

P O BOX 3354. CHERRY HILL. N J 08034 

(609) 424-7106 



ATARI 810 DISK DRIVE $ CALL $ 

ATARI 800 48K $ CALL $ 

ATARI 1200 64K $ CALL $ 



Defender 
Pac-Man 
Galaxian 
Centipede 

S32.95.. ATARI- 

Large selection of software for Atari 400/800 Call 
IIMTEC RAM BOARD FOR ATARI 400/800 

32K Ram Board ....»67.95 48K Ram Board ....»99.95 
64K Ram Board M24.95 

B KEY 400 KEYBOARD $94 




EPSON PRINTERS $ CALL $ 



PHONE ORDERS CALL (609) 424-7106 FOR 
IMMEDIATE COD, SHIPMENT 



CHARGE IT WITH YOUR VISA 






VISA' OR MASTER CARD (MmfcWoR^' 



Add 3% for Master Card and Visa 



THANK YOU FOR YOUR ORDER! 



^3<C_ V J 



Vs. 



PROTECT 

YOUR COMPUTER 



/■ 






special 



8.99 

COMPUTER COVER 

Features heavy duty canvas with viny\ interior-waterproof. 

ATARI-800/AC-8 =8.99 EPSON/MX-80 =8.99 

ATARI 400/AC-4 =8.99 EPSON/MX-80FT. =8.99 

ATARI-810/AD-D =8.99 IBM PC PRINTER =8.99 

OKIDA TA/tJ82A =8.99 



Mail Order 

SOFTWARE GALLERY 

P.O. Box 3354 

Cherry Hill, IM.J. 08034 

Call: (609) 424-7106 



Add $2 for postage and handling 
N J residents add 5% sales lax 



Dealer & Distributor 



^TRAV-LER=^ 

INC 

359 Wales Ave. 

New York, N.Y. 10454 

Call: (212) 993-7100 

NOTE Atari, Epson. IBWl and Okidata are registered trademarks. 



PAGE 52 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



HOME ELECTRICITY 
CONSUMPTION ANALYSIS 



16K cassette 24K disk 



by Joseph E. Harb Jr. 



"Kilowatts" is an ATARI BASIC program that 
requires 16K RAM with cassette or 24K RAM with 
disk. It analyzes yearly, monthly, and daily electri- 
city consumption and cost for all-electric homes. 

When we moved into our present house several 
years ago, I planned to make a number of energy con- 
servation modifications. I decided that I would like 
to use my ATARI 800 to determine what impact 
those modifications had on our energy consump- 
tion and costs. That led to the writing of "Kilo- 
watts," which makes provisions for yearly and 
monthly temperature fluctuations. Statistics gen- 
erated by "Kilowatts" can be displayed on the 
screen or printed on a line printer. 

Monthly and yearly temperature variations are 
taken into consideration by analyzing kilowatt con- 
sumption per cooling/heating degree day, as appro- 
priate. A heating degree day is each degree that the 
average temperature drops below 65 degrees F. on a 
given day. A cooling degree day is each degree above 
65 degrees F. The total number of cooling and 
heating degree days in each month can be obtained 
from your local weather bureau (National Oceanic 
and Atmospheric Administration — NDAA). Our 
local NDAA office at Baltimore Washington Inter- 
national Airport kindly provided me with several 
years of monthly degree day information over the 
telephone. 

In a given month, a minimum of 100 cooling 
degree days is required before the program will cal- 
culate cooling degree day consumption for that 
month. A minimum of 200 heating degree days is re- 
quired for heating degree day analysis. This was 
done because in months when the number of heating 
or cooling days is below the threshold, energy use for 
heating or cooling is so low that the data becomes 
heavily biased by other energy use. This bias makes it 
seem that consumption per degree day is abnormally 
high. To change the threshold for cooling degree 
days, change the value of MINCD in line 100. To 
change the threshold of heating degree days, change 
the value of MINHD on the same line. 

In order to further minimize distortion by 
electricity consumption for uses other than heating 
and cooling, the program subtracts 400 kilowatts 
from each month's total electricity use before 



computing consumption per degree day. (This 
subtraction is not performed in computing any other 
statistics.) The variable used in the subtraction is 
FCTR, also in lines 100/110. It can be changed if you 
feel your nonheating/cooling electricity use is higher 
or lower. 

All REM statements can be eliminated without 
requiring any line number changes. Additionally, if 
you feel the explanation of DATA statements given 
in the following paragraph is adequate, you can 
eliminate the instruction subroutine (line 2050 and 
6999-7190). If you do not have a printer, you can also 
remove the printer subroutines (lines 2040 and 
5999-6880). 

One DATA line is required for each month of 
data. DATA lines must be numbered in increments 
of 1, beginning with line 1000; e.g., 

1000 DATA JAN,79,1329,29,56. 10,30,29.88,984,0 

1001 DATA FEB,79,1426,28,60.44,32,31.44,1100,0 

1002 DATA MAR,79,520,31,50.98,11,20.33,520,15 
DATA statements must contain: month (first three 
letters); year (last two digits); number of kilowatts 
used; number of days in billing period; cost of 
electricity (paid on time and including surcharges); 
heating degree days; and cooling degree days. All of 
the required information except heating and cooling 
degree days can be obtained from utility bills. As 
explained above, the information on headng and 
cooling degree days can be obtained from your local 
NOAA office. 

If you have been looking for a relatively quick and 
easy way of neatly aligning columns of figures, 
particularly those with decimal fractions, you might 
want to consider using the technique I employed in 
this program, for example in lines 3170-3190. It can 
be done in four easy steps: 

1. Decide the rightmost column for displaying a 
particular set of figures. Then add 1 to that value. In 
subroutine 3000, I wanted the last digit of the 
variable X to be printed in column 11. I then added 1 
to that number, for a total of 12. If you are aligning 
figures with decimal fractions, use the column where 
the decimal point is to be printed, and do not add I. 

2. Measure the length of the variable by converting 
it to a string and using the LEN function. In line 
3170, LEN(STR$(INT(X))) means calculate the 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 53 



length (LEN) of the variable X after converting it to 
an integer (INT) and then to a string (STR$). The 
variable must be converted to a string because the 
LEN function can only measure the length of string 
variables. For this measurement, it is important to 
convert a numeric variable to an integer when the 
variable includes a decimal fraction. This is 
necessary because the ATARI eliminates final zeros 
after the decimal point. Thus, 3.50 is displayed as 
3.5. Consequently, if you wished to align the 
numbers 3.5 and 4.27 and if you measured the whole 
length of the variable, the columnar alignment of the 
numbers would be: 

3.5 

4.27 

3. Pick a variable name for the column where 
printing of the display variable is to begin. (I used 
CLl in the example.) Then, use the algorithm in this 
paragraph to calculate the column where printing is 
to begin. The algorithm subtracts the length of the 
integer portion of the string from the value 
calculated in step 1. In other words, the column 
where printing is to begin equals the length of the 
integer portion of the variable subtracted from the 
column where printing is to end. That is expressed in 
BASIC as CL1=12'LEN(STR$(INT(X))). This 
means that the first digit of the variable X will be 
displayed at screen column 12 minus the length of 
the integer X. 

4. Position the cursor at the column and row 
where printing is to begin. This is done with the 
POSITION statement. In line 3180, the cursor is 
positioned at column CLl, row PEEK(84). 
PEEK(84) is the memory location of the current 
cursor row. Finally, use the PRINT statement to 
display the variable on the screen. Once you get 
used to this process, it can be done fairly quickly. Of 
course, it can be further simplified by performing the 
whole operation at one time: 

POSITION 12'LEN(STR$(INT(X))),PEEK(84):?X 
During operation of "Kilowatts" do not depress 
the return key at any time when responding to a 
screen prompt. Simply type the letter(s) or numbers 
desired for input. The GET statement will determine 
which key(s) you depressed. D 

VARIABLES USED IN "KILOWATTS" 

A: Used with GET to determine last key depressed 
on keyboard. 

ANET: Used to represent electricity cost (NET) 
whenever single subroutine must calculate either gas 
or electricity statistics. 

AVG: Per kilowatt cost. 

B: Used with A when more than one key input 
from keyboard is required. 

C: Used with A &. B when three-key input 
required from kevboard. 

CAVG: Average monthly consumption of 



kilowatts per degree day. 

CD: Cooling degree days in a given month. 

CDAVG: Average annual consumption of 
kilowatts per cooling degree day. 

CDDIV: Total number of kilowatts used when 
computing annual average consumption of kilowatts 
per cooling degree day. 

CDTOT: Total number of cooling degree days per 
annum. 

CLl: (Column 1); Column where printing of 
specified data begins. Used to right justify screen 
display. 

CL2: (Column 2); Used with CLl when more than 
1 column cannot be right justified in some other way. 

CL3: (Column 3); Used with CLl & CL2 when 
more than two columns cannot be right justified in 
some other way. 

CL4: (Column 4); Used with CLl, CL2, &l CL3 
when more than three columns cannot be right 
justified in some other way. 

COST: Total annual cost of electricity. 

DAYS: Number of days during billing period. 

DD: Used to represent either cooling or heating 
degree days in subroutines where either can be used. 

DDAVG: Average annual use of kilowatts per 
cooling or heating degree day. 

DDN$: Used in subroutines 3000, 5000, &. 6000 
to represent words "HEAT" or "COOL" in column 
headings, depending on whether user has requested 
cooling or heating degree day information. 

DDT: Total number of heating/cooling degree 
days in a given year. 

DIV: Total number of energy units used when 
computing annual average consumption per degree 
day. 

FCTR: Estimated minimum amount of electricity 
used monthly for uses other than heating or cooling. 
Subtracted from UNITS before computing 
consumption per degree day. Can be raised or 
lowered if estimated minimum is different. 

HAVG: Average monthly consumption of 
kilowatts per heating degree day. 

HD: Number of heating degree days in a given 
month. 

HDAVG: Average annual consumption of 
kilowatts per heating degree day. 

HDDIV: Total number of kilowatts used when 
computing average annual consumption of kilowatts 
per heating degree day. 

HDTOT: Total number of heating degree days per 
annum. 

HIYR: High year in data base. 

HL: Nr. of lines to be printed on each page. 

K$: Month for which data requested in menu 
options A, B, E, &. F. 

KPD: Average number of kilowatts per degree 
day. 

KPD$: Used to represent either variable KPD or 
letters "N/A" when printing out results of kilowatts 



NEW FOR ATARI from mmg micro software 



r^OW _ THE TWO MOST POWERFUL AIDS FOR ATARI BASIC!! 



\ P 




BASIC COMMANDER 



Single key entry file commands 

- ENTER "D; - SAVE "D: 

- LIST -D; - RUN "D: 

- LOAD "D: 

Single Key DOS functions from BASIC 

- FORMAT a disk - LOCK a file 

- RENAME a file - UNLOCK a file 

- DELETE a file - DISK DIRECTORY 
THREE PROGRAMMABLE KEYS!! 

- sinqle keys programmed for your own use, even 
vviiok' subroutines 

AUTONUMBER 

- automatically generates line nuinbers for you — 
speeds program entry 25-75"-. 

BLOCK DELETE 

deletes any range of lines instantaneously! 

RENUMBER 

renumbers lines and all references 

extensive error trapping 

3 seconds to renuml)er 500 lines 




MMG BASIC DEBUGGER 



• TRACE through your Basic program 

- Single slep — TRACE while 

- TRACE UNTIL - change uariables 

- LIST line numbers executed 

- examine variables' values 

• Full screen BASIC editing 

- scroll up or down by cursor 

- edit your whole program easily 

- no more LIST line number ranges 

• Split screen mode 

- view two parts of your BASIC program at once, 

and edii both! 

- scroll each window independently 

• CROSS REFERENCE 

- provides a list of variables and the line numbers 
in which they are used in your program 

• SEARCH FOR PHRASE 

search your BASIC program for any phrase, 
command or string of characters; let your 

computer do the searching for you! 



EACH PRODUCT ALONE REQUIRES 16K, AND IS AVAILABLE ON DISK FOR ONLY $34.95 
Now, the convenience of both powerful utilities together in your Atari at once 
The Combined Basic Commander and MMG Basic Debugger requires 24K. $74.95 



ADDITIONAL PRODUCTS 



NECESSITIES 

RAM TEST n ■ The fastest and most thorough memory test available for the 
ATARI has now been further improved! Tests not only all locations, but also tests 
the memory addressing system. This all machine language program takes 4 
minutes to test ^SK. It's the only program that tests the cartridge area of RAM, 
Good for new 400/800 computer owners, for testing new RAM boards and for use 
in computer stores to test and pinpoint bad memory locations. Bad memory 
locations are pinpointed so repair is as simple as replacing a chip! 

Requires 8K, Disk or Cassette $29.95 

DISK COMMANDER II - Just save this program on your BASIC disks and it will 
autoboat and automatically list all programs for the disk into your screen. Simply 
run any program by typing a single number. 

Requires 16K, Disk Only $29.95 

TUTORIALS 

ASTEROID MINERS - Tliis 50 page book and program provides for a unique 
intermediate to advanced tutorial. A 32K BASIC game utilizing over 25 players in 
playermissle graphics, machine language subroutines, a redefined character set , 
multiprocessing ulilizing the vertical blank interrupt interval, and much more! 
The 50 page book included with the program documents each pari of the entire 
program and contains the fully documented source code for both the BASIC and 
assembly language parts of the program. Use these routines in your own 
programs. These examples make it easy! 

Requires 32K, Disk or Cassette $34.95 

GAMES 

CHOMPER ■ An all machine language arcade style game with intelligent 
monsters. Requires 16K Ram, 1 Joystick and nerves of steel. 

Available on Disk or Cassette $29.95 

BUSINESS/HOME 

MAILING LIST - Extremely fast BASIC and machine language program. Each 
data disk holds over 500 files. Sort on any of 6 fields at machine langugage speed 
or search on any fragment of a field! Use any size labels or envelopes. 

Require 40K. Disk Only $39.95 



NEW 



MMG DATA MANAGER If you frequently find yourself looking for 
something, only to find it eventually right under your nose, then MMG DATA 
MANAGER is for you. Organize virtually anything into a computer-searchable 
format, and let your ATARI do the hunting for you. MMG DATA MANAGER is 
the first of a series of business applications from MMG MICRO SOFTWARE, all 
of which will share the ability to access files created by any of them. This flexible 
database manager will allow many fields, with machine language sorting, on any 
field. In addition, you have total control of the structure of your data, allowing you 
to design a database which you feel most comfortable. A special feature of MMG 
DATA MANAGER is its ability to select for a given value of any single field, or any 
combination of values from many fields. You could, for instance, determine who 
lived m Las Vegas, Nevada, and bought item ff3145 from you, and whose last 
name began with SM.and whose telephonenumber began with (702) 873-4. You'll 
never lose track of information again! Multiple print options add to the versatility 
o( MMG DATA MANAGER. 
Requires 40K. Disk Only $49.95 

Available At Your Favorite Computer Store 
OR Send a Check or Money Order to; 

MMG MICRO SOFTWARE 

P.O. Box 131 • Marlboro, NJ 07746 
OR CALL 

(201) 431-3472 

For MasterCard, Visa or COD Deliveries 

(Please Add $3.00 For Postage & Handling) 

NJ RESIDENTS ADD 5% FOR SALES TAX 

ATARI is a registered trademark of ATARI, Inc. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 55 



per degree day computation. 

LINE: Last line of DATA. 

LOYR: Lowest year of data in data base. 

M$: Month of data contained in DATA line. 

MINCD: Minimum number of cooling degree 
days necessary for computing electricity consump- 
tion per cooling degree day. 

MINHD: Minimum number of heating degree 
days necessary for computing electricity 
consumption per degree day. 

NET: Cost of electricity without late charge. 

NR: Used to calculate number of months in data 
base. 

PRNT$: One PRNT$ string is created for each line 
of data to be printed with the line printer in 
subroutine 6000. Allows data to be aligned easily in 
columns without using TAB functions which vary 
from printer to printer. 

R$: Represents month in subroutine 6460/6570 
to compare same month of different years. 

SET: Sets flag when high line of page print reached 
during loop. 

T: A flag set at beginning of subroutines 3000 and 
5000 to identify whether user has requested 
information on consumption per cooling or heating 
degree day. 

TIME: Last line printed on printer. 

UNITS: Kilowatts used during billing period. 

UP: Average daily kilowatt consumption. 

USE: Total annual consumption of electricity. 

Y: Year of data on DATA line. 

YR: Year of data being processed. 

Z: Index variable for loops, i.e., keeps track of nr. 
of times loop has occurred. 



le POKE 82^3 

20 -? "H4 KIL0HflTT5" 

38 ? " ELECTRICITY" 

40 ? " AMfiLY5IS PROGRAM" 

50 ? " BY JOE HftRB" 

60 ? "44DURIMG OPERATION OF THIS PROGR 

AM, DO NOT DEPRES-i RETURN KEY fiF 

TER TYPING 0N5WERS TO PROMPTS." 

78 OPEN ttl^4,e,"K:":REM OPEN KEYBOARD 

TO GET INPUTS LATER IN PROGRAM WHEN G 

ET STATEMENT 15 USED 

80 ^ :? "DEPRESS ANY KEY TO CONTINUE." 

:GET Jtl,A 

50 DIM DDNS(43 ,MSt3J,K5(3) ,KPDSt6) ,PRN 

TSf65J,RSC3) 

108 MINCD=188:MINHD=200:FCTR=400:REM M 

INCD=MINIMUM COOLING DAYS NECESSARY FO 

RCOMPUTATION 

118 REM MINHD=MINIMUM HEATING DEGREE D 

AYS NECESSARY 

128 REM FCTR=HR. OF KILOWATTS TO BE SU 

BTRACTEI) FROM MONTHLY KILOHATT USE MHE 

N COMPUTING DEGREE DAYS. 

138 REM SUBTRACTING FCTR REDUCES EHTEN 

T TO WHICH OTHER HOUSEHOLD ELECTRICITY 

USE BIASES HEATING AND COOLING STATS 
208 REM CALCULATE: TOTAL MONTHS OF DAT 
A CNR); LOW YEAR OF DATA tLOYRJ ; AND H 
IGH YEAR OF DATA (HIYR) 
218 NR=8 

228 READ MS, Y, UNITS, DAYS , NET , HD, CD 
230 HEM MSzMONTH, Y=YEAR, UNIT5=KIL0MA 
ITS USED USED IN BILLING PERIOD 
248 REM DAY5=NR. OF DAYS IN BILLING PE 
RIOD 



258 REM NET=COST OF ELECTRICITY WHEN B 
ILL PAID ON TIME,DD=DEGREE DAYS DURING 

BILLING MONTH 
268 HEM HD^HEATING DEGREE DAYS 
278 REM CD^COOLING DEGREE DAYS 
288 LOYR=Y:RESTORE 

298 READ MS, Y, UNITS, DAYS, NET, HD, CD 
308 IF MS="END" THEN RESTORE ;GOTO 280 
8 

318 HR=HR+1:HIVR=Y 
320 GOTO 298 

498 REM SUBROUTINE TO GET INPUT FOR ME 
NU OPTIONS A * B; THEN CLEAR INPUT QUE 
STIOHS FROM SCREEN TO ALLOW DISPLAY 

499 REM OF ADDITIONAL DATA 

500 ? "HTYPE FIRST THREE LETTERS OF MO 
NTH YOU WANT,":GET «1,A:GET ttl,B:GET 

«1,C 
518 REM NEXT LINE CONUERTS ATASCI UALU 
E5 TYPED ON KEYBOARD TO A STRING 
528 KS = CHRStA) : KS (LEN CKS) +1) =CHRS (BJ :K 
f £LENfKS)+lJ=CHRStCJ :GOSUB 538:HETURN 
538 POKE 84,PEEKC84)-2:F0R Z=8 TO 1:? 



";NEXT ZiREM 39 SPACES 

540 POKE 84, PEEK C843 -2 ; RETURN 

1008 REM W]M;MH!lf;».1l>VlJ;ia:iifrtiM;H!H 
1899 DATA END , 999, 0, 0, 8, 0, 
1999 REM MENU OPTIONS 

? "ISTHI5 PROGRAM ALLOWS THE FOLLO 

SELECTIONS:":? 
? " A. TOTAL MONTHLY AND AUER 
KILOWATT USE" 
TOTAL MONTHLY AND AVER 

KILOWATT COST" 
TOTAL ANNUAL KILOWATT 

COST" 
PRINTOUT OF ALL ELECTR 

DATA" 
DATA INPUT INSTRUCTION 



2000 
WING 

2010 ? " 
AGE DAILY 
2020 ? " 
AGE DAILY 
2030 ? " 
USE AND 
2040 ? " 



B, 



D, 



F. EMIT PROGRAM":? 
"TYPE LETTER OF OPTION YOU WANT 



EJQ" 
2999 



ICAL USE 

2050 ? " 

S" 

2068 

2070 

.":GET ttl,A 

2088 REM GET IS USED TO DETERMINE LETT 

ER TYPED ON KEYBOARD; A-ATA5CI VALUE 

F LETTER TYPED 

2098 IF A=65 THEN 3000 

2108 IF A=66 THEN 4880 

2118 IF A=67 THEN 5888 

2128 IF A=68 THEN TRAP 2ie8:0PEN tl4,8, 

e,"P:":TRAP 18088: GOTO 6888 

2138 IF A=69 THEN 7888 

2148 IF A=70 THEN POKE 82,2:END 

2158 GOTO 2070 

2160 REM PRINTER ERROR MESSAGE 

2178 CLOSE tl4:? "PRINTER IS NOT ON~LIN 

TRAP 18880: GOTO 2078 

REM SUBROUTINE FOR MENU OPTION A 
3008 GOSUB 500 

3010 ? "DO VOU WANT TO INCLUDE INFORMA 
TION ON HEATING(H), COOLINGIC) OR NE 
ITHERtH)?":GET ni,A;GOSUB 538 
3828 IF A=67 THEN DDN$="COOL" : T=8 
3038 IF A=72 THEN DDNS="HEAT" : T=l 
3040 IF A=78 THEN DDNS=" ":T=2:DD=B 
3858 ? "MONTH TOTAL AUG TOTAL A 
VG KHU" 

3068 ? " KWU DAILY DGREE P 
ER ";DDNS:REM 8 SPACES BEFORE KWU 
3878 ? " KHU USE DAYS D 

GREE DAY":REM 14 SPACES BEFORE KWU 
3080 FOR Z=l TO NR 

3898 HEAD MS, Y, UNITS, DAYS, NET, HD, CD 
3188 IF MSOKS THEN 3288 

3110 UP=INT(100«UNIT5/DAYS3/108:HEM CB 
MPUTE UNITS PER DAY AND LIHJi f DECIMAL 
PLACES DISPLAYED 

3120 IF T=8 THEN DD=CD:IF CD>MINCD THE 
N GOTO 3158 

3138 IF T=l THEN DD=HD:IF HD>MINHD THE 
H GOTO 3150 

3140 IF T=2 OR CD<::MIHCD OR HD<=M3NHD 
THEN KPDS="N/fl":GOTO 3170 
3158 KPD=INT ClOe* <UNITS-FCTR) / < CDD/38) 
»DAYS))/108:KPDS = STRS tKPDJ :REM COMPUTE 

UNITS PER DEGREE DAY 
3168 REM LINES 3170-3198 USED TO ALIGN 



PAGE 56 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



OND PRINT SCREEN DISPLAY 
S178 CLl = 12-LENf5TRScmT(UMIT5J J3 :CL2 = 
17-LEN tSTRS tINT {UP J 3 > : CL3=26-LEM f STHS ( 
DD)3 .■CL4-32-LEWf5TRSCINTlKPDJ3J 
3180 ? MS;" "JV; :POSITION CLl,PEEKf84> 
:? UNITS; :P05ITI0H CL2,PEEK (84J : ? UP;: 
POSITION CL3,PEEK(84J :? DD ; 
3198 POSITION CL4,PEEK184J :? KPDS 
3200 NEXT ZsRESTORE 

3218 ? :? "DO YOU WANT TO LOOK AT ANOT 
HER MONTH? TYPE Y OR N.":GET ttl,A 
3228 IF A=89 THEN GOSUB 53e:G0SUB 588: 
GOTO 3080 

3230 ? "n";G0T0 2088 

3999 REM SUBROUTINE FOR MENU OPTION B 
4888 GOSUB 580 

4810 ? "MONTH TOTAL TOTAL UNIT" 
4020 ? " KNU COST COST" 

:REM 9 SPACES BEFORE KMU 
4838 FOR Z=l TO NR 

4040 READ MS , Y ,UNITS , DAYS, NET, HD, CD 
4858 IF MSOKS THEN 4098 
4060 AVG=INTC10000*(HET/UNIT53 J/10800: 
REM CALCULATE AUERAGE DAILY USE 
4070 CLlrl3-LEN(STR5CINTCUNITSJ)3 :CL2= 
19-LENC5TRSCINTtMET3 JJ 

4088 ? MS;" ";Y; :POSITION CLl,PEEKt843 
:? UNITS;" "::POSITIOM CL2,PEEK t843 : 
? NET; :POSITION 25,PEEKt843 :? AWG 
4098 HEHT Z:RESTOHE 

4100 ? :? "DO VOU WANT TO LOOK AT ANOT 
HER MONTH? TYPE Y OR H,":GET ttl,A 
4110 IF A::89 THEN GOSUB 530: GOSUB 500: 
GOTO 4830 
4120 ? "*S":GOTO 2000 

4999 HEM SUBROUTINE FOR MENU OPTION C 

5000 ? "UDO YOU WANT TO INCLUDE INFORM 
ATION ON HEATING CHS OR COOLING CC3 ? 
":GET lttl,A:YR=LOYR 

5018 IF A=67 THEN DDNS="COOL" : T=8 
5020 IF A:=72 THEN DDHS="HEAT" : T-1 
5038 ? " ";DDNS;" 

AUG KWATT":REM 22 SPACES BEFORE DDN 
S 

5040 ? "YEAR KWATTS DGREE P 

ER DGREE":REM 18 SPACES BEFORE DGREE 
5058 ? " USED COST DAYS D 
AY" 

5060 USE=O:COST::0:DDT=O:DIU=O 
5070 FOR Z=l TO NR 

5088 READ MS, Y, UNITS, DAYS, NET , HD, CD 
5898 IF YOYR then 5148 

5100 IF T = 8 then DD = CD:IF CD<=:MINCD TH 
EN DD=0:GOT0 5138 

5110 IF T=l THEN DD=HD:IF HD<=MINHD TH 
EN DD=e:GOTO 5130 

5128 DDT=DDT+D0:DIU=DIU4UHITS-FCTR 
5138 USE=U5E+UNITS : C0ST~C05T+NET 
5140 NEXT Z: RESTORE 

5158 DDAUG=0:IF DDT)8 THEN DDAUG=INT (1 
88«Diy/DDT3/100 

5168 CLl = 17-LENf5TRStINTCC05T}33 :CL2~2 
6-LEN (5TRS (INT CDDT3 3 3 : CL3=30-LEN (SIRS ( 
INTCDDAgG333 

5170 ? YR+1900;" ";USE;" ";:P0SITI0 
N CLl,PEEKf843 :? COST; : POSITION CL2,PE 
EKt843:? DDT; :POSITION CL3, PEEK 1843 
5180 ? DDAUG 

5190 VR-¥R+1:IF YR<HIYR+i THEN 5060 
5288 RESTORE 

5210 ? :? "DEPRESS ANY KEY TO RETURN T 
MENU.": GET ttl,A 
5228 GOTO 2800 

5999 REM SUBROUTINE FOR MENU OPTION D 
6008 T1ME=0:SET=O:? "HTVPE NUMBER OF L 
IHES PER PAGE TO BE PRINTED .": GET 
ttl,A:GET ttl, 8 :HL=(CA-483«103+(B-483 
6010 LPRINT CHRSC273;CHRS{563 :REM DI5A 
BLE EPSOM "END OF PAPER" FUNCTION 
6020 ? tt4;" TOT 

AL AV6 TOTAL AUG": REM 24 SPACES 

BEFORE TOTAL 
6830 -> «4;" HEA 

T KMATT COOL KMATT":REM 24 5PAC 
ES BEFORE HEAT 

6048 ? tt4;" KMATTS TOTAL DGH 

PER DGR PER": REM 8 SPACES 



BEFORE KWATT 

6050 ? tt4;"YEAR USED COST DAY 

S DGR DAY DAYS DGR DAY":LPRIHT 

6068 TIME=TIME+5:VR=L0VR 

6078 U5E=e:COST=e:CDDIV-0:CDTOT~8:HDDI 

V-0:HDTOT=e:CDAUG=0:HDAUG=8 

6088 REM CDDIU & HDDIU ARE NUMBER OF A 

NNUAL KILOWATTS FOR HEATING « COOLING. 

ONLY MONTHS WITH MORE THAN 180 
6090 REM COOLING OR 288 HEATING DEGREE 
DAYS ARE INCLUDED, 500 KWATTS PER MONT 
H SUBTRACTED BY FCTR FOR OTHER ELECT. 
6100 HEM CDTOT * HDTOT ARE TOTAL HEATI 
NG/COOLIHG DEGREES PER ANNUM FROM MONT 
HS WITH SUFFICIENT DEGREE DAYS 
6110 PRNTS=" 

":REM 65 SPACES 
6120 FOR Z=l TO NR:REM CALCULATE ANNUA 
L CONSUMPTION AND COST 
6138 READ MS, Y, UNITS , DAYS, NET , HD, CD 
6148 IF YOYR THEN 6180 

6158 IF CD>MIHCD THEN CDTOT=CDTOT+CD : C 
DDIU=CDDIU+UNITS-FCTR 

6160 IF HD>MINHD THEN HDTOT=HDTOT+HD :H 
DDIV=HDDIU+UNITS-FCTR 
6170 U5E-USE+UNITS:C0ST-C0ST+NET 
6180 NEXT Z:RESTORE 

6190 IF CDTOT>B THEN CDAUG=INT (180*CDD 
IU/CDTOT3/1O0 

6288 IF H»TOT>0 THEN HDAUG=INT C10O«HDD 
IU/HDTOT3/108 

6210 ? »4;VR+1908; :PHNTSCll-LEN(5TR$tU 
SE33,10)=STRS{USE3 

6228 PRNTSC16~LEN{STRSCINTtCOST3 3J,183 
=STRSCC0ST3 

6230 PRHTSC25-LEN<STRSCHDT0T3J ,245=STR 
SfHDTOTS 

6248 PRNT5{30-LEN{STRS(INT{HDAUG3)3,32 
3-STRS{HDAUG3 

6250 PRNTS(41-LEN<5TRS(CDTOT33 ,4e3=STR 
SCCDTOTJ 

6260 PRHTSC45-LEN(5TRS(INT(CDAgG3 3 3 .47 
3=STHSCCDAMG5 

6270 ? »4;PRNTS:TIME=TIME+1 
6288 VR=YR+l:IF YH<HIYH+1 THEN 5878 
6290 RESTORE : LPRINT :TIHE=TIME+1 
6399 REM CALCULATE AND PRINT MONTHLY 
DATA. SUBROUTINE 6410 PRINTS COLUMN 
HEADINGS OH EACH SHEET OF PAPER 
6480 GOSUB 6410:GOTO 6460 
6418 ? tt4;" 

KWAT KWAT 

TIME=TIHE+l:HEM 47 & 10 SPACES 



6420 -> tt4; "MONTH 


DAILY 


MNTHLY MNT 


HLY COST HEAT 


PER 


COOL PER" 


:TIME=TIME+1 






6430 ' 04;" 


KWATT 


KMATT COS 


T PER DGRE 


DbRE 


DGRE DGRE 


":TIME::TIME + l:REM 


8 SPACES 


BE4 KWATT 


6440 ? tt4;" 


USE 


USE 


KMU DAYS 


DAY 


DAYS DAY" 



6488 RS-"MAR 



6498 RS 
6508 RS 
6518 RS 
6528 RS 
6538 RS 
6548 RS 
6550 RS 
6568 RS 
6578 RS="DEC" 
6580 CLOSE tt4 



: LPRINT : TIME -TIME+l: REM 8 * 13 SPC5 

6458 RETURN 

6460 RS=".JAN":G05UB 6688 

6478 RS::"FEB":GOSUB 6688 

:GOSUB 6680 

; GOSUB 6688 

IGOSUB 6680 

I GOSUB 6600 

:G0SUB 6600 

; GOSUB 6600 

:GOSUB 6600 

: GOSUB 6680 

IGOSUB 6680 

; GOSUB 6600 

? "«":60T0 2000 
6608 FOR Z=l TO NR : REM CALCULATE MONTH 
LY CONSUMPTION AND COST 
6618 READ MS , Y, UNITS, DAYS, NET, HD, CD 
6628 HAUG-0:CAUGr0 
6630 IF MSORS THEN 6820 
6640 ? lt4:M5;" ";Y; 
6658 PRHTS-" 

":REM 65 SPACES 
6668 UP=INTC188»(UMITS/DAYS3 3/188 



APR- 
MAY' 
JUN' 
JUL' 
AUG' 
•■SEP' 
OCT' 
NOV 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 57 



6670 PRHTS C6-LEH (5TRS CIHT tUP) > J , 8J =STR 
5 (UP) 

6688 PRMTStl5-LEM<5TRSCUIIITSJ),14J=5TR 
$ (UNITS) 

6690 PRHT$ (22-LEII (5TRS (IMT (HET) ) ) , 24) = 
5TR$(MET) 

6700 AVG=INT(100e«(NET/UNIT5))/ie00 
6718 PRNT$(28-LEH(5TR5(INT(ftVG)))^31)= 
5TR$(AUG) 

6728 PRHT$ (39-LEH <5TRS CHD) ) , 38) =5TRS (H 
D) 

6738 IF HD>MINHD THEN HAVG=INT (100«( (U 
MITS-FCTR) /HD) ) /18B8 

6740 IF HAUG=0 THEM PRNTS (42, 44) =:"M/fl"' 
:GOTO 6768 

6750 PRKTS (43-LEN (5TRS (IMT (HAVG) ) ) , 46) 
=5TR5(HflyG) 

6760 PRHT$(53-LEN(5TR$(CD)),52)=5TR5(C 
D) 

6778 IF CD>MINCD THEN CflVG=INT (180«( (U 
MIT5-FCTR)/CD))/1B98 

6788 IF CAVG=8 THEM PRNTS (56,58) ="N/A" 
-.GOTO 6888 

6798 PRHTS(57-LEN(STR$(IMT(CftVG))) ,68) 
rSTB^CCflUG) 

6880 TIME=TIME*l:IF TIME=HL THEM 5ET=1 
6818 ? »4jPHNTS 
6828 NEXT Z: RESTORE 
6838 IF 5ET=8 THEM 6878 
6848 IF R$="DEC" THEM 6888 
6858 ? "INSERT ANOTHER SHEET OF PAPER; 

THEN DEPRESS AMY KEY": GET III, A 
6868 TIME=fl:5ET=8:G05UB 6418 
6878 LPRINT :TIHE=TIME+1 :IF TIME=HL TH 
EN 6848 
6888 RETURN 

6999 REM INSTRUCTIONS FOR PREPARING DA 
TA LINES 

7008 LIME=NR+999 

7818 ? "HFOR EACH HONTH OF DATA VOU HA 
UE, YOU MUST TYPE ONE DATA LINE." 
7828 ? "*THE FIRST DATA LINE MUST BE N 
UMBERED 1888." 

7838 ? "RAFTER THAT, EACH DATA LINE MU 
ST BE NUMBERED ONE HIGHER THAN TH 
E LAST." 

7848 ? "FeR EXAMPLE, 1800 MUST BE FOLL 
OUED BY 1881, 1882, 1083, 1884, ETC. 
•■ 

7858 ? "^DEPRESS ANY KEY WHEN READY FO 

R NEXT INSTRUCTIONS. ":GET ttl,A 

7060 ? "»5THE FOLLOHING IS THE FORMAT F 

OR A DATA LINE:" 

7070 ? "*1000 DATA OCT, 82, 1358, 38, 79 .2 

5 435 8" 

7888 ? "^REQUIRED DATA SEOUENCE AND FO 

HMAT:" 

MONTH; MUST BE 3 LETTERS LO 



•1. 
■2. 



7090 ? 

NG" 

7100 ? 

G" 

7110 ? "3 

MONTH" 
7120 ? "4 
ERIOD" 
7130 ? "5 
BILLING 
7140 ? "6 
ING 

7150 ? "7 
ING 



YEAR; MUST BE 2 NUMBERS LON 
NUMBER OF KILOWATTS USED IN 
NUMBER OF DAYS IN BILLING P 



NET COST OF ELECTRICITY IN 

PERIOD" 
HEATING DEGREE DAYS IN BILL 

PERIOD" 
COOLING DEGREE DAYS IN BILL 
PERIOD" 
7160 IF LIME0999 THEN ? "4LAST LINE 
F DATA YOU ENTERED MAS: ";LINE 
7170 ? "4N0N BEGIN TYPING NEW DATA LIN 
E5." 
7180 END 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



10 DATA 626,571,316,11,87,650,765,970, 

462,317,312 , 349, 844, 885, 96 , 7261 

220 DATA 748,501,730,152,156,203,79,76 



9,55,684,722,11,498,617,848,6685 

520 DATA 258,376,999,591,189,73,428,43 

5,728,140,203,338,681,639,405,6467 

2090 DATA 851,848,852,604,860,824,723, 

279,394,487,725,125,171,153,332,8228 

3050 DATA 496,276,286,497,761,837,185, 

274,293,885,611,584,357,351,249,6942 

3200 DATA 778,316,848,308,491,727,470, 

84,494,758,865,148,662,758,783,8482 

4180 DATA 314,839,306,495,552,174,156, 

129,793,294,777,580,764,740,77,6910 

5110 DATA 101,50,652,783,713,236,823,6 

69,448,51,341,715,499,355,108,6544 

6020 DATA 373,553,240,527,488,719,149, 

880,872,557,326,764,751,18,184,7241 

6170 DATA 658,789,616,635,828,389,85,5 

36,63,546,626,457,719,248,372,7567 

6410 DATA 109,812,106,297,806,999,992, 

11,33,13,57,56,34,32,23,4380 

6560 DATA 60,992,414,734,777,465,896,3 

52,576,210,625,142,869,295,840,8247 

6728 DATA 127,482,778,321,181,446,779, 

309,95,995,804,758,988,109,893,7977 

6870 DATA 166,821,716,350,473,886,594, 

695,429,247,84,642,143,82,144,6472 

7120 DATA 531,305,47,98,613,435,276,23 

85 



Mr. Harb has also prepared a gas/electric version of 
this program called "Thermowatts." Space limitations 
prevented us from including it here, hut the listing will 
appear in The A.N.A.L.O.G. Compendium (to 
be published later this year). 



BASIC COMPILER 

AND ASSEMBLER 

FOR ATARI* 
& COMMODORE 64 



THE BASM BASIC COMPILER AND ASSEMBLER FOR 
ATARI / COMMODORE 64 produces programs that run up to 
130 times faster than Atari/Commodore BASIC. Uses the 
syntax of BASIC with ASSEfvlBLY LANGUAGE data types and 
addressing modes. Has the efficiency of ASSEMBLY, but cuts 
program development time by 2 to 3 times. Produces highly 
efficient ROMable binary files. Programming features: IF- 
ELSE-ENDIF; WHILE-ENDWHILE; DEF-ENDDEF, Utility 
libraries: graphics: disc access: debugging aid. Editor in- 
cluded. Block-structured capability. Eases the transition from 
BASIC to ASSEMBLY LANGUAGE programming. Eliminate 
the tedium of calculating the logistics of ASSEMBLY Syntax. 
In-line standard 6502 ASSEMBLER. The next step in the 
evolution of the small computer BASIC language. 
Available soon tor APPLE //«^' 
Dealer inquiries invited. 

BASM requires 32K, disk. Price $99.95 plus $2.00 for shipping 
(add $1 .50 for C.O.D.). In Calif, add 6'/?% tax. Specif., Atari or 
Commodore. Send check or money order to: 

COMPUTER ALLIANCE 

21115 Devonshire St., 1 32B, Chatsworlh, CA 91 31 1 / (21 3) 368-4089 



DON'T ASK PROVIDES THE MISSING LINKS 



o<»the link between your modem and the outside world. For hassle-free 
communications, phone right in with TELETARI, The Friendly Terminal. 




Your Atari has never had such easy access to the whole world of telecommunications- bulletin boards, news reports, large time- 
sharing computers, the works. Now it's a snap to tap into all these, and it's just as easy to transfer your program or text files to and from a 
remote computer. tVleet TELETARI, The Friendly Terminal. It's just what your modem needs: a powerful, adaptable telecommunications 
package that's a cinch to use. With TELETARI, you simply choose the desired communications function from a menu. Commonly used 
terminal parameters are included in the program, but you can change them to suit your needs with a couple of keystrokes, using another 
handy menu, and store the ones you plan to use again. TELETARl's generous buffer stores up to 20K, so you can review, print, or save 
received information long after you've hung up the phone. You never knew using a modem could be so convenient. Because it's very 
flexible, TELETARI is compatible with most modems and a wide variety of computers. And because it works through the RS 232 port, 
TELETARI is not limited to modem/telephone uses. Put it to work in any FRS232 application your imagination can devise -even operating a 
laser disk! 



• buffer of up to 20K • menu-driven • highly adaptable 

• compatible with 1200 baud modems and BiT 3 Full-view 80'" board 

$39.95 Requires Basic, 32K RAM. disk, 850 Interface 



• supports all 850 options 
suitable for any RS232 application 



CX» the link between BASIC and arcade-style graphics. Draw and animate pictures for your own BASIC games 
and other programs with pm ANIMATOR. Create running men, flying rockets, moving figures of all kinds. 



OrQ 



or 



^or 



6^ 



iniator 



Now available 
DONTASK 



C^imator 



'animator 

@5) 



"fnjmg^ 




BASIC programmers, pm ANIlVlATOR puts the power of 
Player-Missile Graphics at your fingertips. 



$34.95 



Requires 32K RAM. BASIC, disk. 



""animator 




To order direct from Don't Ask, send a check or money 
order, or call to order COD. Add $2.00 for shipping and 
handling. California residents add 6% sales tax (6.5% if 
you reside in L.A. County), 



cx» the link between fast game action and verbal learning 



^fPKJJEZJ 



Kids and adults, increase your vocabulary while you compete in this 
exciting word game. 
Disk version: 

3 levels of play - Beginner. Regular, Challenge 

Requires 32K RAM, disk. BASIC. $24.95 
Cassette version; 

2 levels of play - Beginner. Intermediate 

Requires 1 6K RAM, cassette, BASIC. $1 9.95 
O-O^turn WORDRACE into a history game or a famous athletes 
game, and gel more vocabulary words, with the WORDRACE 
accessory disk: CLAIM TO FAME/SPORTS DERBY. 3 new games in 
all. 
Disk only. Requires WORDRACE disk. £ 1 9.95 



rademarti o1 Man. I 



h ol BiT 3ComDur 




o-o>the link between you 

and what your Atari is 

really thinking: 

AeUSE 

the insult-exchange program. 
Have you cursed out your computer? Now 
it can understand you and answer back! 
Requires 40K RAM, BASIC, disk, $1 9.95 
Release your aggressions! Inflict ABUSE 
on anyone who's got it coming! 



DON'T ASK 

0-0> the link between technical excellence 
and the fun of computing. Why do we give 
you so much? Don't Ask. 



D®nT ASK 

COMPUTER SOFTWARE 



2265 Westwood Bl., Ste. B-150 

Los Angeles, CA 90064 
(213) 477-4514 or 397-8811 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 59 



BASIC COMPILERS FOR THE ATARI 

A Comporotive Review 



by Brian Moriarty 



ABC by MONARCH DATA SYSTEMS 
P.O. Box 207 

Cochituate, Massachusetts 01778 
40K Disk $69.95 

THE BASIC COMPILER by DATASOFT 
9421 Winnetka Avenue 
Chatsworth, California 91311 
48K Disk $99.95 

BASM by COMPUTER ALLIANCE 

21115 Devonshire Street 

Suite 132 

Chatsworth, CaUfornia 91311 

32K Disk $99.95 



The world is full of ATARI BASIC programmers 
lusting for speed. They squirm with envy as the 
disciples of FORTH and C expound the virtues 
of those fast and exotic languages, and gaze with won- 
der upon machine-code hackers who wield their 
mysterious powers at 1.7 MHz. 

Why this insatiable craving for faster programs.' 
The answer is simple: GAMES. Every serious 
ATARI user has a secret desire to write the Ulti- 
mate Computer Game, a dazzling tour-de-force that 
would make Tempest look like Pong. Unfortun- 
ately, many would-be Chris Crawfords don't have 
time to master more than one programming language 
— and guess which excruciatingly slow language that 
one usually is. 

If you've ever been frustrated by the speed of 
ATARI BASIC, then a BASIC compiler may be 
just what you need. The recent release of THREE 
new compilers for the ATARI offers programmers a 
long-overdue alternative to BASIC thatTRS-80 and 
Apple users have been enjoying tor years. 
What Is A Compiler? 

A compiler is a utility program that reads a 
program written in BASIC and translates it into a 
lower-level code that executes faster than the 
original. A compiled BASIC program is completely 
seJf-contained; it is treated exactly like a binary DOS 
file and does not need the BASIC cartridge or any 
other special software to run. 



Monarch Data Systems' ABC, Datasoft's BASIC 
Compiler and BASM by Computer Alliance are 
significantly different in terms of features, 
performance and cost. Since ABC reached the 
market soonest, we'll examine it first. 

Inside ABC 

ABC is a single-pass integer compiler. "Single- 
pass" means that your BASIC program is scanned 
only once as it is being compiled. "Integer" means 
that numbers are stored in straight 3-hyte binary 
instead of the 6-byte floating-point format used by 
the BASIC cartridge. The elimination of floating- 
point math is one of the main reasons for the speed 
of ABC. 

The best way to understand ABC is to review what 
happens when you compose a BASIC program. Each 
time you hit RETURN over a line of BASIC, the 
instructions are "tokenized" into a special internal 
code that can be understood by the cartridge. 

ABC takes this process a step further. It reads the 
tokens produced by the BASIC cartridge and 
translates them into an even more compact form 
called psuedo-cocie or "P-code." The P-code is then 
linkeci to a small machine-language program called a 
run-time interpreter, which reads and executes each 
P-coded instruction. 

The big difference between tokenized BASIC and 
ABC P-code is conciseness. By using only whole- 
number integer arithmetic and a more efficient 
memory-management scheme, ABC simplifies the 
execution of each command in the ATARI BASIC 
repertoire. The result is a significant increase in the 
speed of the compiled program. According to 
Monarch, the speed improvement factor can range 
between four and twelve times, with seven times 
being a reasonable average. 

It should be noted that the P-code produced by 
ABC is not 6502 machine language. It's essentially a 
series of pointers into the run-time interpreter, much 
like a FORTH program. You can't LIST, disas- 
semble or make any sense at all out of the P-cocie 
without a detailed understanding of the ABC 
interpreter. This is an important feature if you're 
thinking about distributing your compiled software, 
because the code will be protected from all but the 
most determined pirates. 



PAGE 60 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



Easy To Use 

Experienced BASIC programmers should have no 
trouble using ABC. First, you SAVE your completed 
BASIC program on a disk. Then you pull out the 
BASIC cartridge and boot the ABC disk. ABC asks 
for the name of your BASIC file and the name of a 
destination file, which will eventually become the 
compiled version of your program. 

ABC next writes a copy of the run-time interpreter 
out to the destination file. It then scans your BASIC 
program and translates it into P-code, one line at a 
time. Finally, the P-code is appended to the 
interpreter, and you're left with a binary-format disk 
file that can be loaded and executed using DOS 
option "L." The original BASIC program is 
completely unaffected. 

A couple of different run-time interpreters are 
included on the ABC disk. These provide a choice of 
loading addresses to match different memory 
configurations and DOS requirements. There is also 
a clever little program called MKRELO that makes 
your compiled software completely relocatable — a 
handy feature for commercial development because 
it assures that your software will run in virtually any 
machine with enough memory to fit it. 
The Datasoft Compiler 
Datasoft's BASIC Compiler is a 4-pass utility that 
converts BASIC programs directly into 6502 
machine code. Because machine language doesn't 
need to be interpreted, the execution speed of the 
compiled code can be very impressive. Datasoft 
claims a speed improvement of 5 to 20 times over the 
original BASIC version. 

Like ABC, a run-time support package must be 
linked to the code in order for it to run. Datasoft 
gives you a choice of two different run-time 
packages: a high-speed integer version or a slower 
version that will accept floating-point functions. 

The compilation procedure for the Datasoft 
compiler is fairly involved. After specifying the 
source and destinadon filenames, the program asks 
you to select either integer or floating-point math; 
the appropriate run-time package is linked to your 
code. The compiler then studies your BASIC code 
and converts it into one or more mnemonic 
assembler files which are written out to the disk. 

Next, the Datasoft system loads a 3-pass assembler 
which reads the intermediate files created by the 
compiler, and produces a machine-language output 
file which is the final, executable version of your 
BASIC program. All assembler files remain intact on 
the disk, and may be accessed by Datasoft's 
DATASM Editor/ Assembler (sold separately) for 
later tweaking by hardcore hackers. 

Datasoft's product is tricky to use if you have only 
one disk drive. Because the assembler and output 
files must be written onto the same disk as your 
BASIC code, you have to be sure to leave enough 
space for them. According to Datasoft, this limits the 



maximum size of your BASIC program to about 100 
sectors ( 12. 5K). Users with more than one drive can 
lessen the limitation by putting their BASIC source 
on a separate disk. 

Good Diagnostics 

An interesting feature of the Datasoft compiler is 
the Line Reference Map. This function displays each 
line number of your original BASIC program along 
with the exact address where its machine-language 
counterpart can be found. The map can be sent 
either to the screen, a printer or a disk file. Line 
references are very useful if you want to modify or 
debug the compiled version of a program. 

The error handling of the Datasoft system is also 
helpful. Problems that occur during the execution of 
a compiled program produce a standard ATARI 
error number along with the address of the 
instruction that caused the foul-up. If you prepared a 
reference map of the program, you can determine 
which line of the original BASIC code produced the 
error. The Datasoft system also allows you to re- 
enter a crashed program at any point by specifying a 
new run address. 

The Catch 

It would be wonderful if you could take any old 
BASIC program, send it through one of these 
compilers and get a nice, speedy output file. 
Unfortunately, things aren't that simple. Both the 
Monarch and Datasoft products impose restrictions 
on the type of BASIC code that can be successfully 
compiled. 

Listings 1 and 2 show the documented 
programming restrictions oi the ABC and Datasoft 
BASIC compilers, respectively. Notice that the 
program access statements like LOAD, SAVE, 
ENTER and LIST are not supported by either 
system. This makes sense because of the self- 
standing nature of a compiled program. Also note 
that the floating-point math functions (SIN, COS, 
etc.) cannot be used by ABC, or by the integer 
version of the Datasoft compiler. 

The documentation provided with ABC suggests a 
number of sneaky ways to get around its lack of 
floating-point arithmetic. It gives examples of how to 
simulate fractions, trigonometry and the RND() 
function without producing a compilation error. 
ABC's 24-bit integer math package allows a usable 
variable range of ±8 million, so it's possible to scale 
almost any value to a convenient whole number. 

Both the integer and floating-point versions of the 
Datasoft compiler offer a nice implementation of the 
RND() function. Datasoft also allows you to use 
RUN statements as long as you don't include a 
filespec such as RUN "DLPROGRAM." 

Datasoft won't let you use variables as line 
references (GOTO X or GOSUB 100+ Y, for 
example). Also, you can't imbed DATA statements 
in your BASIC code. You have to place them all at 



Four new ways 
togetKRAZY! 

CBS Software introduces four new fast-action games for your Atari 
400 and 800 or Commodore VIC-20 computers* Each one is so 
challenging, you'll see why K-RAZY is the name of the game! 

"I^ke K-RAZY ANTIKS ™ for instance. If the carnivorous ants 
don't get you, their exploding eggs might. As you're defending your 
way through this multi-level maze game, watch out for the hungry 

anteater's sticky tongue and the 

flooding rainstorm, too! 

If that doesn't make you 
crazy try K-RAZY SHOOT-OUT! ™ 
If you have terrific marksmanship, 
you can blast through the evil Alien 

Droids. But only if you're really sharp will you be able to avoid the 
radioactive walls and escape the deadly Control Sectors. 

Or, try K-RAZY KRITTERS.™ You're in charge of the Conamand 
Ship, but it wiU take fast thinking to blast the invading Alien 
Attackers to save your Star Base from impending doom. Fail, and 
face the consequences— as your 
Command Ship is carted off to the Intergalactic Junkyard! 

Just as crazy is K-STAR PATROL.™ Because you're the Star Ship 
Squadron's only hope. Maybe you can defend against the Alien Attack 
^^^^■■■■■Mto^ Forces, but can you escape the 

Intergalactic Leech, too? Oh, and 
one other thing: replenish your Star 
Ship's Force Field, or the end is near! 

Also, this April, watch for 
our two new games that look, 
sound and play so different from 
anything else, you'll really have ^ 

to see them to believe them. They're 
MOUNTAIN KING™ and BOULDERS AND 
BOMBS™ —both exploding with challenge! 

After all, they're from CBS Inc. And everything that name 





k-razy; 
ANTIKS 





stands for in quality entertairmient 
is built into each and every game. 
Remember. Get the most you 
can out of computer games . . . and 
get KRAZY! 

•All programs are available as ROM cartridges for 
Atari 400'" and 800™ computers. K-RAZY ANTIKS'" 
and K-STAR PATROL'" are also available for 
the Commodore VIC-20.'" 




CBS 

Software 



A Unit of CBS Inc., 41 Madison Ave., New Yoili, NY 10010 



K-RAZYANTIIB 

KMZV SHOOT-OUT 
"•""'KBITTERS 
K-STAR PATROL 



O CBS Inc 1983 ■VIC-20" is a trademark of Commodore Business Machines, Inc. "Atari." "Atari 400" and "Atari 800" are trademarks of Atari, Inc. 
■K-RAZY ANTIKS," "K-RAZY SHOOT-OUT" "K-RAZY KRITTERS," "K-STAR PATROL' and "BOULDERS AND BOMBS" are trademarks of Kay Enterprises Co. 
"MOUNTAIN KING" is a trademark of E. E Dieyer.. Inc. 



PAGE 62 



A.N.A.L.O.G, COMPUTING 



ISSUE 11 



the very end of the program, preceded by an END, 
STOP or GOTO statement. 

1 Uke to keep DATA statements close to their 
corresponding READs because it makes programs 
easier to debug. I also like to use variables as line 
references because it makes my code self- 
documenting: statements like GOSUB 
NEXTLINE are inherently more meaningful than 
GOSUB 2011. Hopefully a later version of the 
Datasoft compiler will deal with this common 
stylistic approach more realistically. 
Which One Is Faster? 

Speed is one of the main reasons for using an 
ATARI BASIC compiler. To compare the speed 
performance of the Monarch and Datasoft products, 
I wrote a short benchmark program that uses nested 
FOR/NEXT loops to fill a GRAPHICS 24 screen 
with direct POKEs (see Listing 3). The hardware 
timers at locations 19 and 20 keep track of the 
execution speed in 60ths of a second or "jiffies." 

The benchmark was compiled and executed on a 
standard 48K system, using ATARI BASIC, ABC 
and both versions of the Datasoft compiler. Just for 
the fun of it, I also tried the program on ATARI'S 
disk-based Microsoft BASIC and Optimized 
Systems Software's BASIC A+ 3.05. The program 
was run 3 times under each system, and the results 
were averaged to produce the data in Listing 4. 

The 5-to-20 times speed improvement claimed by 
Datasoft's integer compiler is clearly justified. 
ABC's increase is about 7.4 times, also right in line 
with Monarch's advertising. The floating-point 
version of Datasoft's compiler isn't very impressive 
in this example — it's not all that much faster than 
BASIC A+. 

Prospective users should know that graphics 
commands like PLOT, DRAWTO and FILL will not 
be significantly speeded up by using one of these 
compilers. The ROM routines that perform these 
functions are the same ones used by the BASIC 
cartridge. It would be nice to see a super-compiler 
with its own set of speedy graphics routines, similar 
to those offered by the valFORTH language system. 

Memory Requirements 

The amount of memory required by a compiled 
BASIC program depends on three things: the size 
and type of program being compiled, the efficiency 
of the compilation, and the size of the run-time pack- 
age required to support the code. 

ABC's run-time interpreter takes up 36 disk 
sectors or about 4.5K of RAM. The floating-point 
package for Datasoft's compiler requires 32 sectors 
(4K), while the integer package needs 29 sectors 
(3.6K). These figures represent the minimum RAM 
overhead required by any compiled program, re- 
gardless of its size or function. 

We looked far and wide for a large BASIC pro- 
gram that could be used as the basis for a size com- 



parison between the Datasoft compiler and ABC. 
Most of the trouble was caused by the Datasoft 
product, which would not accept the imbedded 
DATA statements found in virtually every off-the- 
shelf BASIC program we tried. In desperation, I 
decided to write this issue's feature game (Adventure 
in the ^th Dimension) without using variable GOTOs 
or GOSUBs, "misplaced" DATA lines or anything 
else that would violate the restrictions documented 
by either product. 

After thoroughly de-bugging the adventure, I 
SAVEd it onto a disk and checked its size. The 
BASIC version required 99 sectors, just below the 
maximum recommended by Datasoft for a single- 
drive system. So far, so good. Then I tried compiling 
the program with ABC using my single -drive 48K 
system. I experienced no problems until the very end 
of the compilation, when the program informed me 
of an Error # 166 (Point data length). Puzzled, I called 
Monarch and spoke to the author of the program. He 
tracked down the problem (too many GOSUBs in 
line 66), suggested an easy fix and promised to eli- 
minate the limitation in future releases. My second 
compilation was flawless; the P-code produced by 
ABC is 129 sectors in length, about 30% larger than 
the original. And the adventure plays perfectly. 

Next I tried compiling The 5th Dimension with 
Datasoft, again using a single drive and 48K. I 
followed the instructions in the user's manual and 
transferred the system equate file SYSEQU.ABC 
onto the same disk as the BASIC program. Then I 
ran the compiler. Before the end of Pass 1 , the com- 
piler reported an Error #162 (Disk Full). 1 looked at 
the disk with DOS and found that the assembler files 
had completely filled the disk, leaving no room for 
the assembly itself! 

I borrowed another drive and re-compiled, using a 
second disk containing copies of the assembler, 
system equate and run-time library files. Again I 
was greeted with an Error #162. Not to be deterred, I 
put the assembler file ASM. OBJ onto the same disk 
as the adventure and tried one more time. Success! 
The compiler just barely found enough room to 
write the assembler files, and I made it through Pass 
1. 

My disk space difficulty was caused by the fact 
that Datasoft always writes the assembler files onto 
Drive # 1 . The reference manual estimates that these 
files require about five times as much space as the 
BASIC source file. That places the maximum 
possible source file size at somewhere around 144 
sectors (18K), regardless of the number of disk 
drives you can borrow. 

Now the compiler started on Passes 2 and 3. In 
Pass 3, the compiler stopped to tell me I had some 
unresolved line numbers. It didn't say which Unes 
were causing the problem, so I checked carefully 
through the BASIC program for GOSUBs or 
GOTOs that used variable line references. Nothing. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 63 



The RESTORE statements in lines 73 and 79 do 
use variable line references. But Datasoft's docu- 
mentation doesn't say anything about RESTORES. I 
wtote ■i little BASIC test program to see if the com- 
piler would accept RESTORES with a variable in the 
line reference. Sure enough, the test failed. 

I consider this "undocumented restriction" (read 
BUG) to be very serious. Data line addressing is one 
of the most powerful features of ATARI BASIC. I 
used it extensively in the adventure program because 
it made object handling so much easier. Rewriting 
the adventure was out of the question; so I compiled 
the program one more time and ordered the 
assembler to ignore the "unresolved line numbers." 
The remainder of the compilation proceeded 
without error. Final program size was 214 sectors, 
more than twice the size of the original. Due to the 
presence of known errors, I did not try to run the 
compiled version. 

Other bugs in the Datasoft BASIC Compiler have 
been discovered by users of the first release. I have 
personally verified difficulties with TRAP and 
VAL, along with some confusing problems with 
strings and numeric arrays. Datasoft is reportedly 
aware of these bugs and will hopefully offer updated 
disks to purchasers of the early release. 

The Envelope, Please 

The choice between Monarch's ABC and Data- 
soft's BASIC compiler is not an easy one. Each 
product has a unique personality that make it suit- 
able for specific applications and programming 
styles. 

If ultra-high speed is very important to you, then 
the machine code produced by the Datasoft integer 
compiler is tough to beat. Datasoft's product is also 
the better choice if you want to play around with the 
compiled versions of your software. And if you 
absolutely have to use transcendental math, the 
Datasoft floating-point package offers a slow but 
effective way to get it. 

On the debit side, Datasoft's product is very 
greedy with disk space and RAM. You need at least 
two disk drives to compile anything except small 
programs; and you have to put up with an alarming 
range of BASIC programming restrictions. Before 
you buy the Datasoft compiler, I suggest that you 
check with your dealer to make sure you're getting a 
bug-free version. 

ABC isn't as picky about your source code as the 
Datasoft compiler. It will compile just about any- 
thing that doesn't use fractions — and its wide usable 
number range gives it a decided advantage when it 
comes to simulating floating-point operations at 
high speed. The P-code produced by ABC offers a 
degree of software protection you can't get with 
straight 6502 machine code. Last but not least. 
Monarch's ABC costs $30 less than the Datasoft 
product. 



And Then There's BASM 

You may be wondering why I haven't yet men- 
tioned BASM, the third "BASIC compiler" listed at 
the beginning of this article. The reason is simple: 
BASM isn't really a BASIC compiler at all. It's a 
BASIC assembler — an entirely new programming 
environment for the ATARI that looks like BASIC 
but acts like assembly language. 

Take a look at Listing 5. This is the BASM equi- 
valent of the speed benchmark used to test the ABC 
and Datasoft compilers. Notice that some of the 
lines look like ordinary BASIC, while others look 
like 6502 mnemonics. REM statements are included 
in those places where the BASM code differs sig- 
nificantly from the original BASIC. 

BASM programs are composed using a text editor 
supplied with the software. Then the source file is 
saved onto a disk and assembled into machine lan- 
guage. A very small run-time library is linked to the 
code, and your application is ready to run. 

The BASM system understands a very usable sub- 
set of ATARI BASIC, along with a number of state- 
ments and conditionals not found in the cartridge 
(see Listing 6). "Primitive" commands like PEEK 
and POKE must be replaced with their assembly- 
language equivalents, LDA (Load Accumulator) and 
STA (Store Accumulator). READ/DATA 
structures are implemented by using the 6502 X - 
and Y-registers as indexes. 

BASM allows you to mix BASIC and assembly 
statements freely, even on the same logical line. This 
arrangement combines the simplicity of BASIC with 
the power of machine language in a most ingenious 
manner. 

Because BASM programs have an assembly-like 
syntax, the efficiency of compilation is much greater 
than either ABC or Datasoft. Only the pure BASIC 
statements are actually "compiled" — the assembly- 
language sections are incorporated into the program 
as in-line machine code. This means that the speed of 
a BASM program can approach the limits of the 
hardware. I compiled and executed the BASM 
program in Listing 5 and obtained an execution time 
of 18 jiffies or less than 1/3 of a second. This is 231 
times faster than the ATARI BASIC equivalent! 
Computer Alliance claims a more conservative 
speed improvement of up to 130 times. 

Not For Beginners 

BASM is not as straightforward to use as the ABC 
or the Datasoft compilers. You'll have a hard time 
following the 72-page reference manual unless you 
know something about 6502 architecture and 
assembly-language programming. It took me a while 
to grasp the syntax required for certain types of 
BASIC variables and addressing modes. More com- 
plete documentation is definitely called for — even if 
it means raising the price a bit. 

I also ran across a bug in the disk interface. My 



PAGE 64 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



review copy of BASM bombed out whenever I tried 
to load and RUN a compiled program more than 
once. This made it impossible to repeat my bench- 
mark demo without a complete system re-boot. 
When Computer Alliance fixes this problem, they 
will have a fascinating and very powerful "BASIC 
compiler" on their hands. 

Implications 

A stigma against BASIC programming has arisen 
in the ATARI software market over the past few 
years. The prejudice is based on the absurd idea that 
the quality of a program has something to do with 
the language it was written in. 

The compilers reviewed in this article will help 
make BASIC programming respectable again. For 
this reason, I think they are the most important 
pieces of ATARI software to come down the pike 
since valFORTH. They may actually be more signi- 
ficant, because they offer much of the performance 
of FORTH without the need to learn a new program- 
ming language. That means BASIC hackers can 
spend less time puzzling over stacks, disk screens and 
other unfamiliar concepts, and more time improv- 
ing the quality of their BASIC. 

I'm happy to report that not one of the compilers 
mentioned in this article requires a licensing fee. You 
can sell your compiled software royalty-free as long 
as you include a credit in your documentation. 

BASIC compilers are about to open the world of 
professional software development to a whole new 
range of talented authors. Let's hope the code they 
produce will be as sophisticated and valuable as these 
three products. D 



Listing 1. ABC Programming Restrictions. 
Unsupported Functions: 

ATN CLOG COS EXP LOG RND SIN SQR 

Unsupported Arithmetic Operators: 

A (exponentiation) 

Unsupported Statements: 

BYE CLOAD CONT CSAVE DEC DOS 
ENTER LIST LOAD LPRINT NEW RAD 
RUN SAVE 

Other Restrictions: 

Cannot use fractional (non-integer) values. 

Cannot use constants larger than 65,535 (variable 
range is drS million) 



Listing 2. Datasof t Programming Restrictions. 
Unsupported Functions (integer mode only): 

ATN CLOG COS EXP LOG SIN SQR 

Unsupported Arithmetic Operators: 

None 



Unsupported Statements: 

BYE CLOAD CONT CSAVE DOS ENTER 
LIST LOAD NEW RUN - "FILESPEC" SAVE 
Other Restrictions: 

Integer mode values limited to ±32,767 (except 
address constants). 

DATA statements must be at end of program and 
cannot be "executed" (see text). 

DIM statements cannot use variables for size allo- 
cation (e.g.; DIM X(A)). 

GOTO and GOSUB cannot use variables for line 
references (e.g.; GOTO X). 



Listing 3 



10 REM MKKMKKMMKMKKKKKKMKMKMIOCMKKMK 
15 REM » BEMCHNARK TEST FOR BftSIC * 
20 REM » COMPILERS « 

■nic n IT La ^ttj-Mu^Ju'-M MMtfMyM'tfWtflilrflf'W'M'hflfyifWlilf 

X J H t n R n. B WH-ftHH M Jlfl H, Jl WH Wfl RH W.««." r%r%n.n.r\. 

30 POKE 19,0:POKE 20,0 

J5 GRAPHICS 24 

40 SETCOLOR 1 , 0, 14 : SETCOLOR 2,0,0 

45 5CHEEN=PEEK(883+256*PEEK{89) 

50 FOR 1=0 TO 191: FOR J=0 TO 33 

55 POKE 5CHEEM+J,255 

60 HEKT J:SCREEH=SCREEM+40:MEXT I 

65 GRAPHICS 

70 PRINT PEEK(20>.:" jiffies" 

75 PRIMT PEEKC193;" jiffies X 256" 

80 END 



Listing 4. Speed Test Results. 

RUN-TIME ENVIRONMENT JIFFIES 



SECONDS 



ATARI BASIC Cartridge 


4160 


69.3 


ATARI Microsoft BASIC (disk) 


3348 


55.8 


OSS BASIC A+ 3.05 (disk) 


2717 


45.3 


Monarch ABC Compiler 


565 


9.4 


Datasoft Compiler (Integer Mode) 


218 


3.6 


Datasoft Compiler (FP Mode) 


2435 


40.6 



Listing 5 



8188 REM * PROGRAM EQUATES 

811BSCREEf4=88 

8!2eTIHER-28 

0138T]HER256=1? 

3148 REM * POKE 19,8:P0KE 28.8 

8158 LET TIMER256 = 8 ; LET TIMER = 8 

81i8 GRAPHICS 2A 

8178 SETCOLOR 5 , 8 , 14 : SETCOLOR 6.8,8 

8188 FOR I = 8 TO 191 : FOR J = 8 TO 3^ 

8198 REM ♦ POKE SCREEN+J.255 

8288 LI» «255 : LDY J : STA (SCREEN) ,Y : f-CxT J 

8218 REN « SCREEN=SCREEN+48 

8228 REM * THIS IS A 16-BIT BUtftRY ADDITION 

8238 CLC : LDA SCREEN : ADC tt48 ; STA SCREEN 

8248 LDA SCREEN+1 : ADC «8 : STA SCREEN+I 

8258 NEXT 1 

3388 REM « GRAPHICS 8 

0318 FILE 8 

8328 BPRINT TIMER ! PRINT " Ji{+ies" 

8338 BPRINT T1MER256 : PRINT ■ jiffies x 256" 

3348 RETURN : REM * BACK TO BASH 

8358 REM » LINE 368 INITIALIZES THE VARIABLES I & J 

3368 DIM I , J 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 65 



Listing 6. BASM keywords. 



BINI'UT 


BPRINT 


CLOSE 


COLOR 


DATA 


DEF/ENDDEF 


DIM 


DRAWTO 


FILE 


FILL 


FOR/NEXT 


GET 


GOSUB 


GOTO 


GRAPHICS 


IF 


INPUT 


LET 


LOCATE 


OPEN 


PLOT 


POSITION 


PRINT 


PUT 


REM 


RETURN 


SETCOLOR 


SOUND 


STOP 


TR 


TRAP 


WHILE 



ATARI PROGRAMS 

FOR CASSETTE BASED SYSTEMS 

DEPROGRAM $49.95 

Duplicate Any Program Tape In Any Format 

(Saves Your Valuable Machine 
Language Programs) 
Provides the ability to recover 

data from damaged cassettes 
Automatic Memory Size Adjustment 
Boot Program 

SCREWDRIVER 400 $39.95 

Delete Line Numbers Hex Conversion 
Renumbers Decimal Conversion 

Memory Analysis Binary Conversion 

Change Margins (Runs Thru Basic) 

Machine Language To Data Statement 

6502 ASSEMBLER $24.95 

A 6K Basic Program That Translates 

Assembly Language Mnemonics Into 
Binary Code 
Great For Writing Machine Language/ 

Programs 
Interprets Machine Language Code And 

Converts To Mnemonic Format 



IS 



• • • • 
INTERFACE SYSTEMS. . . 

1650 WASHINGTON AVENUE 

CHARLOTTE NC 28216 

704-334-8155 

INCLUDE $1.50 FOR POSTAGE 

NC RESIDENTS ADD 4% SALES TAX 

ATARI, 400 ARE TRADEMARKS OF ATARI, INC. 




COMPILE 
ATARI BASIC 
AND FLY! 



With ABC™, Monarch's | new BASIC 
compiler for ATARI 400* and 800, you 
develop and debug pro-l grams using 
your ATARI BASIC car- #tridge, then 
use ABC to transform ■ them into 
compact code that runs^up to 12 
times faster, without the ^cartridge 
(and protects your source*code, too). 
40K and disk required. ^ For your ABC 
diskette and manual^^^end check or 
money order for ^i^ $69.95 (or $9.95 for 
manual alone). ^^ Monarch Data Systems 
^^V.O. Box 207, Cochituate 
^^ ^MA 01778, (617) 877-3457. 



MastercardA/isa by phone. Dealer 
inquiries invited. Mass. residents add 
5% sales tax. ATARI, ATARI 400, and 
ATARI 800 are trademarks of ATARI, Inc. 




DISK WIZARD 



A COMPLETE DISK UTILITY PACKAGE AT AN 
AFFORDABLE PRICE 

THIS COMPREHENSIVE PACKAGE INCLUDES THE FOLLOWING POWERFUL 
PROGRAMS FOR THE ATARC 800 COMPUTER (MINIMUM: 32 K) 



DISK BACK-UP 


DISK EDIT 


• SINGLE / DOUBLE DENSITY 


• REVIEW /MODIFY ANY SECTOR 


• SUPPORTS 1 OR 2 DRIVES 


• WORKS WITH ALL FORMATS 


• ALLOWS BACK-UP OF DISKS 
PROTECTED BY BAD SECTORING 

• FAST COPY OPTION 


• SINGLE / DOUBLE DENSITY 

• SECTOR DISPLAY IN HEX AND 
ASCII 


• SECTOR STATUS SUMMARY 

• OPTIONAL PRINTOUT OF SECTOR 
STATUS 


• SCAN SECTORS FOR A SERIES 
OF BYTES OR A STRING 

• DECIMAL/ HEX NUMBER CONVERSION 


DISASSEMBLER 


DISK SPEED 


• DISASSEMBLE FROM DISK BY 
FILE NAME OR SECTOR NUMBERS 


• VERIFIES / ALLOWS ADJUSTMENT 
OF DISK SPEED 


• OPTIONAL OFFSET 




• OUTPUT TO SCREEN OR PRINTER 




• SINGLE / DOUBLE DENSITY 





COMPREHENSIVE MANUAL INCLUDED 



$29 



ORDERING INFORMATION 

For fast delivery, send certified 
check or money order. Personal 
checks; allow 2 to 3 weeks, 
MASTERCARD 8i VISA accepied. 
(Maine Residents add 5% Sales Tax) 
Phone orders accepted on C.O.D. 
and charges. 



"ATARI is a registered Trademark of Atari, Inc. 



95 



SHIPPJNG & HANDLING 




69 NEW BOSTON ROAD 
YORK, MAINE 03909 
(207) 363-3036 



PAGE 66 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 




Cjopyright Basics 



by Thomas M. Krischan 



So, you've just written the successor to PAC- 
M AN and you want to protect your investment from 
the software pirates! Copyrighting it is a good initial 
step but there are some things you'll need to know. 
First of all, what exactly is a copyright? A copyright is 
a form of protection provided by the laws of the 
United States (title 17, U.S. Code) to authors. 
Specifically, it protects "original works of 
authorship" including computer programs. This 
protection is available to both published and 
unpublished works. The owner of the copyright has 
the exclusive right to do and to authorize others to do 
reproductions, prepare derivative works, distribute 
copies and display the copyrighted work publicly 
(section 106 of the Copyright Act). It is illegal for 
anyone to violate any of these rights. These rights, 
however, are limited to your particular literary or 
pictorial form of expression and nothing more. You 
do not own the exclusive right to any idea, method or 
system mentioned in your expression. My favorite 
example involves a mountain climber who 
successfully ascends to the summit of Mt. Everest. 
Upon reaching the top the climber unpacks his 
camera and snaps a picture of the sun as it sets behind 
an adjacent mountain. The climber owns exclusive 
rights to that picture, but not to all pictures of 
sunsets. In fact, if other climbers stood shoulder to 
shoulder with him on that mountain and took their 
own pictures, then each would own exclusive rights 
to their very own picture, even though all of the 
pictures are similar, perhaps identical, with each 
other. Copyright protection also excludes scientific 
or technical methods or discoveries, business 
operations or procedures, inathematical principles, 
formulas or any other sort of concept, process or 
method of operation (Circular 31). Inventions are 
subject matter for patents, not copyrights. 

An expression is a description, explanation or 
illustration of an idea or system. Again, you can- 
not copyright an idea. But you can copyright a 
description of an idea, because it's your literary 
expression. It becomes obvious that proper wording 
in the copyright application is essential. Even the 
experts have difficulty in interpreting the fine points 
of copyright law and consequently its infringement. 
This is especially true of computer programs. For 
example, Apple Computer (May 1982) filed suit 
against Franklin Computer claiming that proprietary 
software designs were being infringed upon against 
copyright law. They also filed suit that proprietary 



components were being infringed upon, violating 
patent law. Franklin announced that they were filing 
a major antitrust counterclaim. Both parties decided 
to let the courts make the final judgement. 

On July 30, 1982, U.S. District Judge Clarence C. 
Newcomer held that Apple was not entitled to a 
preliminary injunction against Franklin's sales. 
Score: Franklin 1, Apple nothing. Apple had applied 
for and obtained copyright registration for each of its 
programs involved in the suit. The judge, however, 
was not convinced that an operating-system program 
in object code can be protected under the copyright 
law. Apple's claim for copyright protection was 
based on these arguments: 

; ) That object code is a form of expression and a work 
of aiuhorshif^. 

■2 ) That a computer's operatin^t;, system is in the form of 
an expression, not an idea or system. 

^i)That ROMs and floppy diskettes are a tangible 
medium of expression and not mechanical devices. 

Franklin argued that they wanted to be fully 
compatible with Apple, so that they could use 
independently produced software and hardware 
from third parties. Confused? You're not alone. 
Judge Newcomer wrote that "there is no clear 
consensus on how to describe the technology 
employed in microcomputers." The final word has 
yet to be said in this continuing legal battle. But, this 
is for certain, if ROM and floppy diskettes are found 
to be mechanical devices then they lose the 
protection reserved for writings and expressions 
under copyright. 

In another case, Magnavox filed suit against Mattel 
Electronics claiming that proprietary patents had 
been infringed upon. Onjuly 22, 1982, U.S. District 
Judge George Leighton held that Magnavox was 
entitled to an injunction against Mattel's sales. The 
decision forbids Mattel from manufacturing, selling 
or even using six popular video games. These games 
are Football, Tennis, Basketball, Hockey, Soccer and 
Baseball. My mind can't help but flash back to the 
TV commercial of George Plimpton standing in the 
snowy bleachers comparing video football games 
and hearing him say, "...kind of leaves you 
out standing in the cold. ' ' Score: Magnavox 1 , Mattel 
nothing. As any good lawyer would do, Mattel filed 
and won a motion to stay the injunction with a 
second judge. The patent infringement allegedly 
refers to the rebound action of a ball-type object. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 67 



In yet another case, Astrocade filed suit against 
ATARI and Commodore claiming that licensed 
parents had been infringed upon. The patents are 
held by Bally, who refused to join the suit. 
\JnfoTtunately, Astrocade did not request a 
preliminary injunction, so there's no score yet. 

United States Copyright lawsuits are not confined 
to the United States. The U.S. holds copyright 
protection treaties with most countries, with the 
notable exception of Taiwan. Consequently, 
bootlegged materials are often shipped from Taiwan 
and seized in Hong Kong, New Zealand or some 
other country that does enforce the international 
law. 

These lawsuits demonstrate that ownership of a 
copyright or patent is not necessarily total 
protection. Possession helps, but you can still be 
sued and you could even lose. Sometimes the suit 
may never appear in court, since the very threat of 
litigation and seizure of a product is often sufficient. 
Case in point-Visicorp hired a legal firm to confront 
certain advertisers who used their trademark prefix 
"visi" in their product name (Gee, 1 wonder what 
Citicorp thinks about the name Visicorp). As a 
result, most of the advertisers mended their ways 
and decided not to fight. The ultimate responsibility 
for enforcement against infrigement belongs with 
you. The Copyright Office does not compare 
deposit copies or check registration records to 
determine whether works submitted for registration 
are similar to any work already copyrighted. They 
just documenttheregistrationof the work, assign ita 
number and deposit a copy for reference purposes. 
The way in which copyright protection is securecl 
is frequently misunderstood. The copyright is 
secured automatically when the work in created. A 
work is created when it is fixed to a visually 
perceived device such as books, manuscripts, 
videotape or microfilm. Registration in the 
Copyright Office and publication of the work are 
not required. There are, however, definite 
advantages to registration and several consequences 
to publication. Registration establishes a public 
record of the copyright claim, allows for 
infringement suits to be filed in court and will 
establish prima facie evidence in court of the validity 
of the copyright and of the facts stated in the 
certificate. When a work is published, all published 
copies should bear a notice of copyright, the year of 
publication and the name of the owner of the 
copyright. Failure to comply with the notice 
requirement can result in the loss of certain rights, 
such as the right to recover attorney's fees and 
statutory damages. The published works are subject 
to mandatory deposit with the Library of Congress. 
But here again, there is confusion on what 
publication means. The Copyright Act defines 
publication as the distribution of copies, but not 
their performance or display alone. Therefore, a 



performance on television does not constitute a 
publication, but the same performance in a theater 
or over cable television does. Does a turn on a PAC- 
MAN arcade machine constitute a publication or 
merely a performance? Publication requires the 
transfer of ownership and the unrestricted 
disclosure of its contents. What exactly does that 
quarter buy? No one is quite sure! 

If you choose to register your program, send the 
Copyright Office a completed application (Form 
TX), $10.00 and two copies ofyour source code and 
manual. Here is an exclusive inside tip. Starting in 
September, 1982, you will be able to protect your 
visual displays by including two color photographs 
of every significant illustration. Significant 
illustration means detailed graphics like Mattel's 
baseball diamond or ATARI'S PAC-MAN grid but 
not text modes or simple graphics patterns. You can 
request that forms be mailed to you by telephoning 
(202) 287-9100 and leaving a message on their 
recording machine or by sending a letter to the 
Register of Copyrights, Library of Congress, 
Washington, D.C. 20559. The Copyright Office is 
not permitted to give legal advice. If you need 
information on ownership disputes, infringement 
suits, publishing, royalty payments or the like, you 
will be told to consult an attorney. 

Once you receive your application form, read the 
instructions, get a typewriter and reread this next 
part of the article. We will go through and fill out an 
application step by step. I am assuming the most 
simplified case of a lone author and their totally 
original program. 

SPACE 1 : TITLE. Your work must have a title. It 
does not have to be original or lengthy. Leave the rest 
blank. 

SPACE 2: AUTHOR. Enter your name, your 
nationality and check NO for these three questions: 
"Was this author's contribution to the work a 'work 
made for hire'?", "Was this author's contribution to 
the work anonymous?", "Pseudonymous?". Enter 
under AUTHOR OF: "Text of computer program 
and description". Do not use the words: idea, 
method, system, develop, procedure, or principle. 
Words which imply expression are: description, 
explanation or illustration. Leave the rest blank. 

SPACE 3: CREATION. Enter the appropriate 
year and leave the rest blank. The copyright is 
enforced for your lifetime plus fifty years. 

SPACE 4: CLAIMANT. Enter your name, 
address and leave the rest blank. 

SPACE 5: PREVIOUS. Check NO for the 
question: "Has registration for this work, or for an 
earlier version of this work, already been made in the 
Copyright Office?". Leave the rest blank. 

SPACE 6: COMPILATION. Leave blank. 

SPACE 7: MANUFACTURING. Leave blank 
unless you have signed a royalty agreement with 
someone. If you have, enter their name and address. 



PAGE 68 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



SPACE 8: REPRODUCTION. Check "a" for 
copies and phonorecords. 

SPACE 9: CORRESPONDENCE. Enter your 
name and address under "CORRESPONDENCE" 
and leave the rest blank. 

SPACE 10: CERTIFICATION. Check 
"author", enter your name, date and sign by the (X). 

SPACE 11: ADDRESS. Enter your name and 
address. 

If you have followed my instructions, you should 
have entered your name 5 times; your address 3 
times; the date (or at least year) 2 times; title, brief 
statement, nationality and signature 1 time each and 
6 check marks. If you did this exactly as I told you to 
and you mail all of the items discussed earlier, the 
Copyright Office will send back a copy of the form. 
The copy should arrive within 8 to 12 weeks with a 
certification stamp, a registration number and a date. 
If you did something incorrectly, they will send you 
back your application with a new application form, a 
letter of explanation with a control number and a 
three month grace period to reapply or you forfeit 
your $ 10.00 and two copies. Don't feel bad if you get 
your application returned to you. I have obtained 
many copyrights but only once on the first try. I 
forgot to sign the application, or used a "bad" word. 
Often, they only wanted verification that I meant 



what I said, "Are you sure this is entirely your own 
work?". Many programs are written from scratch 
but some are compilations of other prograrris; data 
bases, operating systems, and the like. Be sure to give 
the proper credit to other works if you did 
incorporate them into your work. However, a 
program in BASIC or Assembler does not cite that 
language under "PREEXISTING MATERIAL". 
Language is considered an idea or system. 

Copyright is not the only method of protection. 
There are also patents and trademarks, but their 
application forms are much more detailed and 
expensive. Beyond the legal aspects, there are also 
hardware and software techniques of protection. 
Diskettes and ROM's can be made uncopyable by 
their hardware dependence. Source and object codes 
can be made unreadable by encrypting them in any of 
various manners. But for ten bucks, copyrights are 
hard to beat. D 



(Editor's note: a recent court decision ruled in favor of 
Franklin. The courts rided that since the operatinf^ s-ys- 
tem of the Apple was in the public domain, computers 
emidatinfi it uere not an infringement of Apple's rights. ) 



UNLEAS H!! / 



]:j:;ia;iL«»ig»r/ij!'X»]jywii?yjri^NiTOfinH 



FAMILY 
ENTERTAINMENT 

3 challenging 

and entertaining puzzles 

for ttie whole fannllv 



lfd!lf«kailidil 



FANTASY PUniE "^^SBBBagaggaggg^g 



• • 

SPACE ADVENTURE 
PUZZLE 

• • • 

Each has 5 puzzles which 
break up from 2 to 100 moves 
-scoring: 2 or more can com- 
pete. Make your own puzzles 
with CYBER GRAPHICS 

ATARI 400/800. GTIA. 48K. Joystick DISK S24.95 

CYBER PUZZLE II 

THE ANIMATED PUZZLE 

5 animated puzzles that 
continue to move even 
after it is broken up 
A special bonus 
animation utility 






ABOVE PICTURE CREATED BY CYUR ORAPHICS 



ATARI 400/800 48K 
Joystick, GTIA, DISK 
S29.95 



• DRAWING UTILirV FOR ALL GRAPHICS MODES 

INCLUDING GTIA • P/M EDITOR • CHARACTER GENERATOR 

USER MODULE TO ENTER DATA INTO YOUR PROGRAMS • 

MICRO UnUFY IfJSERTS YOUR MICROPAINTER" GRAPHICS INTO YOUR BASIC PROGRAM 

ATARI 400/800 48K DISK JOYSTICK S34,95 • TM DATASOFT 



EDUCATIONAL 
SOFTWARE 

MONSTER IMATH 

Children create 

imaginative creatures 

while solving multiplication 

problems 

ATARI 400/800 40K DISK Joystick S28,95 



READY • GET SET 
(THE SET MULTIPLIER) 

Teaches abstract math facts 
to children in a comprehen- 
sive and enjoyable way 

ATARI 400/800 40K DISK S24.95 



MATH FLASH 

A teacher written stu- 
dent tested math card 
set with skill level 
kindergarden thru 
grade 12 

ATARI 400/800 
16K CASSETTE 



ATARI IS A TRADEMARK OF WARNER COMMUNICATIONS, INC. 



32K DISK 



ra 



952SMOKERISE 
MEDINA, OHIO 44256 



DEALER/DISTRIBUTOR INQUIRIES 
WRITE OR CALL 216-722-3143 



COMPUTER PRODUCTS 




Offering a Whole IHew Spectrum 
in Programming: Family Fun, 
Arcade Action, or 
Programming Aidsf. 





TRUST A delightful game for 1-4 

players. Dazzling 3-D graphics, convincing 

animation, and infinite variety, with no 

violence. Perfect for the family. 48K on 

% Atari* disk and cassette, soon on 

Commodore 64''" disk and 
I cassette. $34.95 

SHERLOCK Takes up where Atari* 

DOS 11 stops. Read or edit sectors, map 

sectors, disassemble programs, and more. 

The best buy in disk utilities. $20 05 



TIRAK IjAIR An exciting arcade 
game requiring lightning reflexes and a 
cool head. Great animation and fast 
action. 16K on Atari* disk and cassette, 
soon on Commodore 64"^ disk and 
cassette. $20.05 

Iferi is a registered trademark of Warner Communications Co. 
+Commodore 64 is a registered trademark of Commodore Business Macfiines Co. 

£_ Attention Programmers: Rantom's 

unique marketing approach allo\ws 

royalties of up to 60% for quality 
programs or 2 to 3 times greater 
royalties tiian industry standards. 
Call or write for details. 




.'^SiAii' 



RANTOM 



Avon, CO 
81620 



303-949-6646 



WESTKKOURG 

IWSUND 




V, 



w^ 



RAPMCSWIDS 



TSHMIJ 

You'll never see Infocom's gi-aphics on 
any computer screen. Because there's 
never been a computer built by man 
that could handle the images we pro- 
duce. And, there never will be. 
We draw om- gi"aphics from the limit- 
less imagery of yom' imagination— a 
technology so poweiiul, it malces 
any picture that's ever come 
out of a screen look like 
gi"affiti by comparison. 
, And nobody knows how 
to imleash youi' imag- 
ination like hifocom. 
Through our prose, 
your imagination 
makes you part of 
our stories, in con- 
trol of what you do 
and where you go- 
yet unable to pre- 
dict or control the 
course of events. 
You're confronted 
with situations and 
logical puzzles the like 
of which you won't find ^ 
elsewhere. And you're im- f ' 
mersed in rich environments alive 
with personalities as real as any 
you'll meet in the flesh— yet all the 
more vivid because they're perceived 
directly by your mind's eye, not 
through your external senses. The 
method to this magic? We've found 
the way to plug our prose right into 
your psyche, and catapult you into a 
whole new dimension. 

Take some tough critics' words 
about om- words. SOFTALK, for 
example, called ZORK® Ill's prose 




"far more graphic than any depiction 
yet achieved by an adventm-e with 
graphics." And the NEW YORK 
TIMES saw fit to print that our 
DEADLINE"' is "an amazing 
feat of programming." Even a 
journal as video-oriented as ELEC- 
TRONIC GAMES found Infocom 
prose to be such an eye-opener they 
named one of our games their Best 
Adventm-eofl983. 

Better still, bring an Infocom game 
home with you. Discover firsthand 
why thousands upon thousands of 
discriminating game players keep 
turning everything we write into 
instantaneous bestsellers. 

Step up to Infocom. All words. No 
gi-affiti. The secret reaches of your 
mind are beckoning. A whole new 
dimension is in there waiting for you. 

AlOCKEDDOQRAIXADMAN 




The next dimension. 

Inlocom, Inc., 55 Wheeler St., Cambridge, MA 02138 

For your: Apple II, Atari, Commodore 64,CP/M 8.' DEC Rainbow, 
DEC RT-11, IBM, .MFX APC, NEC PC-8000, Osborne 1, Tl Professional, 
TRS-80 Model I, TRS-SO Model III. 



PAGE 72 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



DO YOU SUBSCRIBE TO A.N.A.L.O.G. 
COMPUTING ON DISK OR CASSETTE? 



. . .if not, then you 
should. Since 
issue no. 1, 
A.N.A.L.O.G.'s 

cassette and disk 
subscriptions have 
eliminated the 
need for you to 
spend hours 
typing in programs 
from the magazine. 
All of the programs 
in the magazine 
are on the cassette 
and disk versions. 
These programs 
are in the public 
domain, and are 
not copy- 
protected. 

1 year (6 issues) on 
cassette, $36.00, 
disk, $60.00. 




m 



a 



ii 




xi<- 



to ^ \ 



To subscribe on cassette or disk, 
send check or money order to: 

CASSETTE SUBSCRIPTION 

or 
DISK SUBSCRIPTION 

P.O. BOX 23 
WORCESTER, MA 01603 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 73 



DISK BACKUP PROGRAMS: 

DOTHEY REALLY WORK? 



by Brian Moriarty 



This article is not another sermon on the evils of 
disk pirating. Anybody with two cents' worth of in- 
telligence knows that pirating is wrong, and that un- 
authorized software duplication violates the author's 
right to a fair profit. 

But what are the rights of a software BUYER? Is it 
legal for the original purchaser of a disk to make per- 
sonal copies? Is it possible to duplicate a "copy- 
protected" disk? Is it moral to sell a disk copying 
program — or to advertise one? 

This last question is of particular concern to the 
staff here at A.N.A.L.O.G. . Over a dozen ATARI 
disk copiers have appeared on the market over the 
past few months. These are supposed to be able to 
back up virtually any ATARI disk, even those pro- 
tected by something called "bad sectoring." Many of 
the companies producing these products have 
bought ad space in the pages of this and other mag- 
azines. 

A.N.A.L.O.G. has a responsibility to its other 
advertisers and to ATARI users in general. If the 
"super-dupers" being advertised in our magazine are 
contributing to the piracy of copyrighted software, 
it is not in the best interest of anyone to continue 
running them. 

The reactionary way out of this dilemma would be 
to immediately reject all further ads for disk copiers. 
Instead, we decided it would be fairer (and more 
interesting) to test the copiers first to see if they 
really worked. We will also examine the technology 
of ATARI disk copying, and propose a set of pro- 
tection standards for consideration by the ATARI 
community. 

The Hardware. 

Before discussing the operation of disk copiers, 
let's review the hardware that makes it all possible — 
the ATARI 810 Disk Drive. 

The 810 is an intelligent drive. It contains its own 
6507 microprocessor, memory buffers and a dedi- 
cated operating system that directly controls every 
reading, writing, and formatting function. 



The 810 accepts commands from the main console 
over the serial bus. Only five commands are recog- 
nized by the 810 operating system: Read Sector, 
Write Sectors, Write Sector with Verify, Format 
Disk and Status Check. All ATARI disk I/O (includ- 
ing disk copying functions) works by using one or 
more of these fundamental operations. 

It's important to understand that the computer 
can only tell the 810 what to do — NOT how to do it. 
That means that it's impossible to write a program 
that will make the 810 access a disk in a non-standard 
way. The ONLY way to accomplish this is by mon- 
keying around with the drive, or with the disk itself. 

The Disk. 

When you format a disk, the 810 writes a pre- 
defined magnetic pattern consisting of 40 concentric 
rings or trades. Each track is divided into 18 sectors 
which contain 128 data bytes apiece. Since there are 
18 X 40 or 720 sectors, a standard ATARI disk can 
hold 720 X 128 or 92, 160 bytes of information. 

The 810 also writes timing information and a 
unique indentification number onto each sector 
when it formats a disk. These sector headers cannot 
be altered once they are in place because the 810 
doesn't know how to access them individually. You 
can play with the sector data all you like — but you 
can't touch those sector headers unless you com- 
pletely reformat the disk. 

The Copiers. 

The principle of ATARI disk copying is very sim- 
ple. All you do is read the data from each interesting 
sector into RAM, and write the data out to the same 
physical sectors on another disk. The copy disk 
should perform exactly the same as the original. 

ATARI DOS 11 uses this method to duplicate 
disks. Whenever you create or modify a disk file, 
DOS updates a map of "in-use" sectors called the 
Volume Table of Contents ( VTOC), which is main- 
tained at sector 360. When you select option "J" 
(Duplicate Disk), DOS checks the VTOC to find 



ATARI SINGS YOUR FAVORITE SONGS!!! 

THE Original VOICE BOX Speech Synthesizer by the ALIEN GROUP has received rave reviews: 

MICRO COMPUTING-"The VOICE BOX injects on endearing personality to your computer. The possibilities are enormous," 
■ COMPUTE-"The VOICE BOX offers more human-like tones and does not blank out the screen." 
CREATIVE COAAPUTING-"English text and phonetic code may be :t~ . 

freely intermixed rather than requiring separate modes as is the case ^SS(^. 

without exception with every other speech system. A mode called 
talking face displays an animated face with impressive lip sync 

animotionv^ilSiiB'S^ ^ 

ANTIC-"There Is a great potential for teaching children to spell and f • i 

an added dimension to games overall. I believe the VOICE BOX is 

well worth the price tag." 

ANALOG-"For ATARI owners who want to odd speech to their 

programs, the Alien Group VOICE BOX is probably the best 

choice. " _, , 

POPULAR SCIENCE-"The speech quality is excellent. Besides 

creating speech, the software has a bit of fun with graphics," I • 

and on the new VOICE BOX M ^ ' 

TIME MAGAZINE-"Machine of the Year" "The VOICE BOX by the 
Alien Group enables an ATARI to say aloud anything typed on its INCORPORATE THE SINGING HUMAN FACE 

keyboard in any language. It also sings Amazing Grace and ,^^q YOUR PROGRAMS AND GAMES 

"When I'm 64" or anything else that anyone wants to teach it. 




VOICE BOX I! 
Speech & Singing Synthesizer 



To order by mail send a check or money order to the ALIEN GROUP 

for $169. Then, try the VOICE BOX II for 10 days, and if it isn't the finest 
value you've ever seen in a computer peripheral, the most challenging and 
provocative addition you've p|ff f jgBpIs '° y°"'' system, return it in its original 
condition for a full refund. '"^ 



THE ALIEN GROUP' 

27 West 23rd Street (212)741-1770 

New York, NY 10010 



The New VOICE BOX II for ATARI plugs into the seridfpl 

400/800 with sound coming out of the TV/monitor. 48K DISK is re- 
quired. It has all of the features of the original VOICE BOX plus many 
exciting new hardware and software features: 

• The ability to sing with voice and 3 port music. 

• A library of 30 famous songs. 

• A comprehensive music system that allows the user to easily enter or 
modify new songs. 

• Software that can convert the bottom two rows of the ATARI keyboard 
into a piano with a range of 3'/2 octaves using the shift and control 
keys. 

• Programmable musical sound effects such as tremolo, vibrato, glis- 
sando and click track. 

• A singing humon face with lip-sync animation designed by Jerry 
White. 

• A talking or singing ALIEN face with software that allows the user to 
change the face and 8 mouth patterns as he sees fit. 

• The ability to speak with inflection and feeling. 

• Can speak in a foreign language with correct foreign spelling as 
input. 

• A talk and spell program by Ron Kramer. Users can program any 
vocabulary for this spelling game. In fact, this program con even 
speak in a foreign language like French, where the user must spell 
the correct word in English, or vice verso. 

• GREEN GOBLINS-A talking arcade gome by John Wilson. 

• Random Sentence Generator-An amusing grammar gome that 
helps teach school children to identify parts of speech and recognize 
o variety of sentence structures. 

• NUMBER SPEAK-A subroutine by Scott Matthews that converts up to 
a 9 digitnumber into normal English pronunciation. Ideal for build- 
ing your own math gomes. 

• STUD POKER-A talking poker game by Jerry White. 

• The screen never blanks out while talking or singing. 

• Singing or speaking subroutines can be incorporated into your 
programs, requiring as little as 100 bytes of RAM plus 5 bytes for 
each word. 

• Entries into the $5000 talking or singing game contest can be 
written using the VOICE BOX ll-send for contest information. 

• Price $169.00 includes VOICE BOX II and all of the above software. 

• Inquire about our discounts for educational institutions. 



*;3»^^ ALSO AVAILABLE AT LEADING COMPUTER STORES THROUGHOUTTHE WORLD. 

Atari is a registered trademarl< of Warner Communications. 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 75 



out which sectors are marked as being active. It then 
reads the contents of those sectors and copies them. 

DOS ignores sectors that haven't been marked in 
the VTOC. Some early disk protection schemes 
took advantage of this fact by "hiding" important 
data in unmarked sectors. If you tried to copy one of 
these disks with DOS, you wouldn't get a complete 
copy and the program would fail. 

The first ATARI "disk backup" programs were 
merely dumb sector copiers. These products (with 
provocative names like Mirror Image, Superdup and 
Lockpik) bypassed DOS altogether by talking di- 
rectly to the disk drive. Each and every one of the 
720 sectors on a disk was read and duplicated, 
whether or not DOS thought those sectors were 
important. The resulting copies included all the 
"hidden" data and ran just like the original. 

Software manufacturers were understandably 
concerned about these copy programs. Piracy was 
rampant, and for a while it seemed as if there was no 
way to circumvent a dumb sector copier. 

The Breakthrough. 

Towards the end of 1981, a new type of ATARI 
disk protection was introduced which put an end to 
"dumb" sector duping. Pirates were bewildered by 
these innocent-looking disks which copied perfectly 
but would not run. 



The disk manufacturers found a way to modify 
selected sectors so that they could not be read by a 
standard 810 drive. The application program in- 
cluded a routine that checked for these "bad" sec- 
tors. If they were readable, the program assumed the 
disk was a copy and crashed itself. 

Imagine what happens when you try to "Lockpik ' ' 
a disk protected by bad sectoring. The copier will 
detect the bad sectors but will not be able to repro- 
duce them because the 810 doesn't know how to 
write anything but good sectors. The resulting copy 
may contain every byte of program data, but it will 
stubbornly refuse to execute. 

Software publishers were delighted by the effec- 
tiveness of this new protection scheme. The pirates 
shuffled away to sulk — and, inevitably, to tinker. 

The New Copiers. 

Hackers are known for their cleverness and 
dogged persistence. It didn't take long for one of 
them to figure out a way to beat "bad sectoring." 

It seems that if you write to a disk sector with your 
drive speed adjusted far above or below its normal 
setting, the written data will be screwed up so badly 
that a normal-speed drive won't be able to read it. A 
similar result can be obtained by sticking a piece of 
tape on the disk jacket and pulling on it during a 
write operation. This throws the drive alignment off 




^^fA THE MONKEY WRENCH II 

tsiw" A PROGRAMMERS AID FOR ATARI 800 
* NEW AND IMPROVED -18 COMMANDS 

If you are a person who likes to monkey around with 
the ATARI 800, then THE MONKEY WRENCH II is 
for you!! Make your programming tasks easier, less 
time-consuming and more fun. Why spend extra 
hours working on a BASIC program when the 
MONKEY WRENCH can do it for you in seconds. 
It can also make backup copies of boot type 
cassette programs. Plugs into the right slot and 
works with ATARI BASIC cartridge. 
The MONKEY WRENCH provides 18 direct mode 
commands. They are: AUTO LINE NUMBERING - Pro- 
vides new line numbers when entering BASIC program 
lines. RENUMBER - Renumbers BASIC'S line numbers 
including intemal references. DELETE LINE NUMBERS 
— Removes a range BASIC line numbers. 
VARIABLES - Display all BASIC variables and their current value. Scrolling - Use the 
START & SELECT keys to display BASIC lines automatically Scroll up or down BASIC pro- 
gram. FIND STRING - Find every occurrence of a string, XCHANGE STRING - Find every 
occurrence of a string and replace it with another string. MOVE LINES — Move lines from 
one part of program to another part of program. COPY LINES — Copy lines from one part 
of program to another pan of program. FORMATTED LIST - Print BASIC program in 
special line format and automatic page numbering. DISK DIRECTORY - Display Disk 
Directory CHANGE MARGINS - Provides the capability to easily change the screen 
margins. MEMORY TEST - Provides the capability to test RAM memory. CURSOR 
EXCHANGE — Allows usage of the cursor keys without holding down the CTRL key 
UPPER CASE LOCK - Keeps the computer in the upper case character set. HEX CON- 
VERSION — Converts a hexadecimal number to a decimal number DECIMAL CONVER- 
SION - Converts a decimal number to a hexadecimal number MONITOR - Enter the 
machine language monitor 

In addition to the BASIC commands, the Monkey W/rench also contains a machine 
lanouage monitor with 16 commands used to interact with the powerful features of the 
6502 microprocessor 



$59.95 



ATARI AND PET 
EPROM PROGRAMMER 



JT.A,AL> 




Programs 2716 and 2532 
EPROMs. Includes hardware 
and software. PET = $75.00- 
ATARI (includes sophisticated 
machine language monltorl = 
$119.95 



Eprom Cartridge- A PC. 

board and case which can be 
used in the ATARI 400 or 800 
in the left or right slot. Uses 
2532, 2732, or 2716 EPROMs. 
May contain up to 8K bytes. 
$19.95 

Memory Test- IVIake sure your 
RAIvl memory is normal. $6.95 
or $9.95 on disk 

Typing Exercise- A typing drill 
program lor beginners and 
experts. On disk. $12.95 



More than just an Assembler/Editor! 
Now for the "64" 



Its a 

Professionally 

Designed 

Software 

Development 

System 




MAE 



for 

PET 

APPLE 

ATARI 

$»69SS 

New 

Price 

$99.95 

Blast off with the software used on the space 
shuttle project! 

• Designed to improve Programmer Produclivily 

• Similar synlaxandcommands— No need to relearn 
peculiar syntaxes and commands when you go 
from PET to APPLE to ATARI 

• Coresident Assembler/Editor — No need lo load 
the Editorthen the Assembler then the Editor, etc 

" Also includes Word Processor Relocating Loader 
and much more 

• Options EPROM Programmer unimplemented 
opcode circuitry 

• STILL NOT CONVINCED: Send lor tree spec sheet! 



5KINCHS0R 
SECTORED DISKEHES 

Highest qualitY. We use ttiem on 
our PETs, APPlEs, ATARIs, and other 
(Mmputefs. $22.50;i0 or $44.50/20 

EPROMS 2716 = $4.50 2532 = $7.50 




3239 Linda Dr. 

Winston-Salem, N.C. 27106 ■ 
(919)924-2889 (919)748-8446 
Send for free catalog! 



I MasterCard 



PAGE To 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



just enough to produce a bad sector. 

These two discoveries have led to a second genera- 
tion of disk copiers that allows repeated read/write 
access to any selected sector, making it fairly easy to 
produce bad format. First you perform a sector-for- 
sector copy of the source disk, noting the sectors that 
are bad. Then you go back and destroy the integrity 
of the noted sectors on the dupe. The copied soft- 
ware will never know what happened to it — and 
neither will the software author, if the person doing 
the copying is lucky. 

Most of the copy programs in our listing are the 
second-generation type with provisions for bad 
sectoring. Some include additional utilities that 
allow you to directly examine and edit sector data, 
and perform a variety of other useful (and totally 
legitimate) housekeeping function. Each listing is 
followed by a brief comment which notes the strong 
and weak points of that particular product. Contact 
the manufacturer if you need more detailed infor- 
mation. 

The manufacturers of these copy programs do 
NOT endorse the use of their products for the pur- 
poses of duplicating copyrighted software. All of 
them include strict warnings to this effect in their 
documentation, along with a defensive note empha- 
sizing the importance of being able to back up valu- 
able software. It is amusing that most of these same 
publishers are distributing their copy programs on 
heavily protected disks! Did I hear someone use the 
work "hypocrisy?" 

Another Breakthrough. 

Software publishers aren't as worried about 
second-generation copy programs as you might 
think. Why? Because they have ALREADY adopted 
ingenious new disk protection methods that can foil 
even the most elaborate software-based copier. 

Again it was the disk duplicators who came to 
the rescue, this time with sophisticated duplicating 
machines that can do all sorts of weird things to the 
sector headers on an ATARI disk. I won't divulge 
the details here, but I can tell you that not one of the 
copy programs listed here can make an execu- 
table copy of a disk duplicated using these 
methods. 

What's more, there will NEVER be a copy pro- 
gram that will allow an unmodified 810 to dupe 
these disks, because there is no way for an 810 to 
access individual sector headers. The only way out is 
to scan the entire disk, sector by sector, locating 
and bypassing the machine-language instructions 
that look for the special format. This is a formid- 
able task, especially if the code happens to be en- 
crypted (and it nearly always is). So if your main rea- 
son for buying a "disk backup" program is to make 
dupes of Choplifter, Filemanager 800+, The Data- 
soft Compiler or any other current software hit for 
your friends, forget it! 



What About Us Honest Guys? 

The new disk protection technology has impor- 
tant implications for ALL software buyers, even the 
completely honest ones (yes, both of you). It is now 
more important than ever for software publishers to 
start providing separate backup disks with their pro- 
ducts. Not just a mail-in coupon — I mean an extra 
physical disk, in the same package as the original. 
This is particularly true of systems and business pro- 
grams, where an untimely disk failure can cause a lot 
of annoyance and expense. 

Few things are more frustrating than an essential 
disk that crashes. The first prize for thoughtless soft- 
ware packaging goes to ATARI, for their disk-based 
version of Microsoft BASIC. Would you risk writ- 
ing an important business program with this lan- 
guage, knowing that your only copy of the inter- 
preter is a speck of dust away from total uselessness? 
Would you care to deal directly with ATARI in a 
time-critical emergency? I thought not. 

It would cost publishers only a few dollars more 
to include a separate backup disk with their pro- 
ducts. This simple precaution would go a long way 
towards protecting the interests of buyers and en- 
hancing the professional image that ATARI software 
so desperately needs. It would also help reduce the 
temptation to produce unauthorized backups — a 
practice that usually leads to pirate copies at the 
next user's group meeting. 

I don't think it's necessary to provide separate 
backups for games. But it would be an inexpensive 
comfort to have an extra copy on the flip side of the 
disk, just in case. This is definitely NOT recommen- 
ded for professional programs. I know of at least one 
popular (and expensive) business-oriented program 
that comes only with a flip-side backup — a pointless 
courtesy if I misplace my disk. 

What Do You Think? 
A.N.A.L.O.G. is eager to hear your opinions on 
the issues presented in this article. I'd like to see feed- 
back from everybody: consumers, authors, pub- 
lishers and maybe even a pirate or two. We'll 
publish the most interesting replies in our next issue. 
So get out your favorite word processing program 
(hopefully a legitimate copy) and start typing! D 



We invite all readers to share their 

thoughts with us on the subject of disk 

backups vs. pirating. Send letters to: 



READER COMMENT 

P.O. BOX 23 

WORCESTER, MA 01603 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE n 



Disk Copy Programs 



DISKEY 

ADVENTURE INTERNATIONAL 

Box 3435 

Longwood, Florida 32750 

32K BASIC $49.95 

One of the most comprehensive disk utilities available 
for the ATARI. Command-driven, with dozens of func- 
tion keys and more options than you can shake a sector at. 
The 62-page reference manual is loaded with information, 
but a bit obscure in places. Strange that a major software 
company would release such an effective backup system 
— on a protected disk, of course. 

SUPERCLONE 

FRONTRUNNER COMPUTER INDUSTRIES 

100 West Grove, Suite 115 

Reno, Nevada 89509 

32K BASIC $49.95 

The first disk copier on the market with "bad sector- 
ing" (the tape method). Designed for the total novice, 
Superclone uses a complicated disk-mapping routine to 
insure that only two copies can be made of any specific 
disk. This well-intentioned limitation makes the program 
extremely awkward to use. If you try to dupe a disk more 
than twice, you get a hi-res color picture of a pirate. Isn't 
that cute? 

DISK WIZARD 
C.A.P. SOFTWARE 
69 New Boston Road 
York, Maine 03909 
32K BASIC $29.95 

A friendly little package of four BASIC programs: sec- 
tor copier and editor, speed checker and sector disassem- 
bler. Each menu-driven utility must be loaded separately. 
The Disk Wizard user's manual is one of the best; and 
unlike most disk copier publishers, C.A.P. actually en- 
courages you to back up your master disk. 

DISKED 

AMULET ENTERPRISES 

PO Box 25612 

Garfield Heights, Ohio 44125 

24K BASIC $89.95 

Disked offers all kinds of exotic functions not found in 
any other disk utility. The BASIC programs are fully LIST- 
able so that you can reach into the code and tinker to your 
heart's content. The human engineering is rough in places, 
and the price is rather steep, but the documentation is 
very complete and includes many hands-on examples that 
beginners should find very helpful. 

DISKWIZ 

ALLEN MACROWARE 

1906 Carnegie Lane "E" 

Redondo Beach, California 90278 

16K BASIC $25.00 

This is my personal favorite. Diskwiz combines all of 
the most-needed disk editing and copying features in a 
menu-driven package that runs very quickly and doesn't 
take a lot of RAM. Human engineering and error-trapping 
are superb; the documentation is a little sparse, but ade- 
quate. And the price is right! 



MIGHTY BYTE 

MIGHTY BYTE COMPUTER 

828 Green Meadow Avenue, Dept. AG 

Rockford, Illinois 61107 

16K BASIC $29.95 

A no-frills sector copier with provisions for "bad sec- 
toring." The instructions for making bad sectors and ad- 
justing your drive speed are unusually complete. 

DISK PACK 1000 
ALPHA SYSTEMS 
4435 Maple Park Road 
Stow, Ohio 44224 
40K BASIC $14.95 

Besides the usual copying features, Disk Pack includes a 
disk speed checker, directory menu, graphics dumper and 
even a little program that lets you adjust your screen 
colors. If a sector copier is all you want. Disk Pack is one 
of the cheapest ways to get it. 

REPLICATOR ONE AND TWO 

PLANETARY MACHINE INTELLIGENCE 

2500 Lee Road, Suite 210 

P.O. Box 2895 

Winter Park, Florida 32790-2895 

32K BASIC $34.95 

The Replicator One and Two programs are intended for 
single- and dual-drive systems, respectively. Both pro- 
grams are simple BASIC sector copiers, with no provision 
for bad sectoring and minimal error-trapping. 

DISKSCAN 
CDY CONSULTING 
421 Hanbee 

Richardson, Texas 75080 
32K BASIC $40.00 

Another menu-driven package of disk editing utilities. 
The "Assemble Into Sector" option is unique; it lets you 
type in 6502 mnemonics and assemble them directly into 
any part of a sector. The manual includes a brief but useful 
dissertation on ATARI disk structure. 



A few other ATARI disk copiers have been advertised 
in various computer magazines and newsletters. These 
have the same features found in the ones listed here, and 
are priced in the $20-$50 range. Many user group soft- 
ware libraries offer sector copying programs that are free 
for the asking. And don't forget Tony Messina's Disk 
Tool, an excellent sector editor published in A.N.A.L.O.G. 
Issues 8 and 9; and The Black Rabbit, a 2-pass machine- 
language sector copier written by yours truly and pub- 
lished in Issue 9. 

When choosing a disk copy program, beware of fly-by- 
night software publishers who promise the moon and 
vanish with the morning dew. Some of our readers have 
experienced problems with late deliveries, incomplete 
products and poor after-the-sale support. Please let us 
know about any difficulties you may experience with the 
companies advertised in this magazine. D 



PAGE 78 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



UTILITY# 5: ATARI MEMORY TEST 



16K Cassette or Disk 



by Tony Messina 



Glancing at my calendar I see that it's time once 
again for another installment of (trumpet fanfare) 
UTILITY WORLD!. . .but first a brief message. 

I would once again like to thank everyone who has 
written with questions, comments and additions to 
the utilities presented in this series. I am answering 
your questions as quickly as possible, so please be 
patient — I promise you will get a reply. Now, back 
to our program. 

For the past three issues (8,9,10) I have been 
directing my utilities towards the disk drive crowd 
while leaving my cassette-based friends in the dark. 
For this I apologize and Thereby make it up to you by 
presenting this issue's utility (number 5), entitled 
ATARI MEMORY TEST. There are two program 
listings. One will create a disk file while the other will 
create a boot cassette. Prior to discussing the details 
of the test, let's talk about memory tests in general. 

What Is A Memory Test? 

A simple answer would be that a memory test tests 
your memory to see if it's OK. To be a bit more 
specific, a memiory test should test the integrity of 
your memory chips to insure that any and all values 
stored into them remain there. Please keep in mind 
that I am speaking of RAM or Random Access 
Memory. And now . . . 

Believe It Or Not 

Believe it or not, when memory chips go flaky, it is 
possible to store a number in a location, load the 
number immediately back in and find that it is 
completely different! Or, how about this: storing a 
into a location, immediately loading the contents of 
that location and finding out that it's not 0! ! Weird, 
huh? Just think of the headaches in debugging 
programs where you store or load values from flaky 
memory chip locations. To bring this point home, 
the following story is true (at least that's what my 
informant told me). Only the names have been 
changed to protect the innocent victims. 

A Memorable Story 

Mr. X wrote a little math drill program on his 
ZAFARI at home. Mrs. X, a teacher at a local 
elementary school, thought this program was really 
neat and wanted to take it in to show her class. After 
all, Mr. Happy Face, who appeared and played music 



when a correct answer was given, and Mr. Frown 
Face, who appeared when an incorrect answer was 
given, were both really cute. 

The next day Mrs. X, math program in hand, 
secured a ZAFARI from the school library, set it up 
for her class and even invited the principal down to 
see this unique program in action. Little Tommy 
Tucker was first. The program asked "How much is 
2+2, Tommy?" to which little Tommy typed in 4 and 
hit return. At this point everything hit the fan. Mr. 
Frown Face appeared with half his head missing and 
the rest looking like he got hit by baseball bat (I'd 
frown too!). The music played but sounded like 
something you hear in a swamp after sunset. To top it 
all off, the answer line said "I'm sorry Tommy, but 
2+2=12615"! Mrs. X was shocked, the principal 
was shocked, little Tommy Tucker was shocked. 
Mrs. Tucker, having heard about the incident after 
school, called the principal asking him what kind of a 
&.$#%#" computer came up with 2+2=12615?! 
Needless to say, after all the smoke cleared it was 
found that a whole section of one memory board was 
flaky. Upon replacing it, everyone was pleased with 
the program and they all lived happily ever after. 
'Nuff said. 

OK? How Do We Test Memory? 

The most comprehensive and reliable methods of 
testing memory (at least on 8 bit machines) write 
values from 1 to 255 in each byte of memory to be 
tested, verifying each value written and halting if an 
error is detected. Often this procedure will be 
repeated several times. Although this algorithm is 
thorough, one might guess that it does require a great 
deal of time (and it does.) I have such a test and it 
takes about 30 seconds to test IK or 24 minutes to 
test 48K! I don't know about you but I don't feel like 
waiting that long. Fortunately there are other ways to 
achieve the same results with only a slight sacrifice in 
efficiency. This issue's utility uses one of the fastest 
methods available. Before discussing the algorithm I 
must make a confession. 

Credits, Or "Someone Please Help" 

The memory test I'm presenting this issue, or at 
least the algorithm that performs the actual testing, 
was not written by me. I found this code on a faded 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 79 



handwritten paper stuffed inside an MOS 
programming manual which 1 purchased at a flea 
market for $2.00! The title written on this piece of 
paper was 6502 Memory Test and was written for 
some other computer, since the original program's 
origin was set at 0. Anyone recognizing this code 
(lines 795-1195 of the source listing) please call and 
let me know who wrote it as 1 would like to give 
credit where credit is due. I will take credit for the 
bells and whistles, code commenting (the original 
had zip), conversion of the program into a multipass 
test, fitting the program in a reasonable address space 
of the ATARI, and the error address isolation 
printout routine. OK, with that out of the way, let's 
get down to the meat of this program. 

The Meat Of This Program 

Rather than give a blow-by-blow, line-by-line 
description of the source code, I suggest that you run 
the appropriate BASIC program to create a bootable 
image and then run the actual memory test to see the 
display created when it is run. Then read through the 
source code to see how it was done. 1 will, however, 
discuss the algorithm. The area tested runs from page 
7 to the top of available user memory. Rather than 
have the test run from one specific memory location 
to another, it is designed to test memory as a series of 
pages. This not only simplifies things but also allows 
the test to run much quicker. The program origin is 
at $0480. This is normally the floating point storage 
area but since we run our test without the BASIC 
cartridge there isn't a conflict. I coded the program 
so it will run on any memory configuration up to 
48K. So don't worry if you only have 8K or 16K. . . 
the program will figure out where it can test. The 
program goes through 10 iterations (0-9). Each 
iteration consists of the following steps. 

1. Write the value $FF to all locations in the test 
area. 

2. Write 00 in the one out of every three bytes in 
memory. Memory looks like FF FF 00 FF FF 
00... etc... 

3. Test the memory area and ensure the pattern 
above is there. Halt giving the memory address. 
Test value, and actual value if there is an error. 

4. If no error write all FF again. 

5. Write new pattern FF 00 FF FF 00 FF, etc. . . . 

6. Verify memory has FF 00 FF etc . . .halt if error. 

7. If no error write FF. 

8. Write new pattern 00 FF FF 00 FF FF etc. 

9. Test and halt if necessary. 

10. This ends the all FF phase. 

11. Now write 00 to all locations. 

12. Write pattern 00 00 FF. 

13. Test and halt if error. 

14. No error write 00 to all memory. 

15. Write pattern 00 FF 00. 

16. Test pattern and halt if error. 

17. No error write 00 to all memory. 



18. Write pattern FF 00 00. 

19. Test and halt if error. 

20. END OF 1 ITERATION. 

The program does all of the above steps 10 times! 
As you can see we are turning all bits on and off in the 
test area by using FF or 00. What we are actually 
doing is checking to ensure that we can set and clear 
all bits within the memory area. Any change to our 
pattern indicates flaky memory in the form of stuck 
bits, or erratic retaining properties of the address 
flagged in error. Having the test do 10 iterations just 
makes things tougher for it to pass. You might think 
that this test would take a lot of time, right? Would 
you believe 11 seconds per iteration on a 48K 
ATARI?? Believe it! This test will waste about a 
minute and a half of your time if you have 48K and 
less if you don't have 48K. The secret is in the paging 
technique, zero page indirect addressing and keeping 
the major part of the program data on page 0. Check 
out the source. Whoever wrote the algorithm sure 
knew his 6502!! 

Program Drawbacks 

Because of the way I implemented this program, it 
will not test pages 0-6 nor will it test the area of 
memory containing the display list and screen data 
for graphics mode 0. It will test the area of memory 
used by your BASIC programs and the majority of 
memory where we all tend to store our ML things. 
This was the price I paid for bells and whistles! If you 
have heartburn about this, then a modification to 
have the program move itself to an already tested 
area could be made. This is just a program and as 
with all programs in this series, it is open for dis- 
cussion, modification and just plain study. 1 hope 
you use it and enjoy. 

Disk Directions 

Listing 1 will create self-executing disk files. Type 
it in, save it and then run it. Be sure you have a disk 
that contains DOS 2 in drive 1 when you run it. The 
file created will be called MEMTST.OBJ. When the 
file has been created, pull out the BASIC cartridge 
and Reboot with only DOS 2. When the DOS Menu 
appears, do a binary load of MEMTST.OBJ. The 
program will load and execute. DOS will be creamed 
by this program but don't worry. 

Cassette Directions 

Listing 2 will create an auto-boot cassette for you. 
Type in the program and then run. When you hear 
the 2 beeps, insert a blank cassette into your tape 
drive, push record and play and hit return. The tape 
will be created. To load it, turn off your ATARI. 
Rewind the tape to the start of the program just 
created. Push play. Hold down the START key on 
your ATARI and at the same time turn on the power. 
You will hear a beep. Press return and the tape will 
load. When done, the program will start 
automatically. 



PAGE 80 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



FINAL ITEMS 

The test will halt if it encounters a faulty memory 
location. The format of the message will be: 
ERROR e->$A81A TVAL->$FF flU«L->SCI> 

For sample purposes the above message would 
mean address $A01 A failed our test. The Test value 
(TVAL) was $FF but the actual value (AVAL) in 
address $A01A was $CD. 

The program will print TEST DONE if no errors 
appear. 

That's it for this article. I hope to hear from 
someone . . . anyone ... if they know who wrote the 
original implementation. As always, any questions 
can be directed to me here at the A.N.A.L.O.G. 
offices. Keep hacking and may all your memories 
read true. D 



15 REM * MEMTE5T Cft55 FILE MAKER * 
28 REM » BY TOHV MESSlNfl « 

25 REM # tC3 A.H.fl.L.O.G. 83 * 

3© REM KMKMXXXXMWKXMMXKKKMKXKWKKWMMW 

51 GRftPH.TC5 2: POKE 712,96:? «6j" ME 

MORV TESl";? «6:" cassette maker":? 

32 ? ttsr' IsQ analog 400/80©":? tt6;" » 

33 ? tte;" by il!lil?Mi:^^GEL__ 

34 POSITION 1,7:? tt6;' W:I3^1ii?TB boot IE 
f23":P05IT10*l 0,5:? »6;" 

35 REM 

48 DIM PR0C;:5C5ia}:PNTlR=l:LINE=198 
45 LINE=LIME+2:F0R C0UHT=1 TO 10 

Se UEM 8YTE:IF B¥TE=359 THEN GOTO 75 

55 PROGS CPSTR5=CHR5fBYTE3 

66 PHTR=PHTIR+l:TOTSL=TOTflL+BYTE:HEKT C 

OUMT:? "LIME: "J LINE 

65 aEfiD CHECKSUM: IF CHECK5UM=T0TfiL THE 

n TOT(3L=0:GGTO 45 

70 ? "BftD CHECKSUM: LIME ";LINE:STOP 

7S TOTftL=TOTflL+BYTE:REflD CHECK5UM:IF C 

HECKSUMOlOTfiL THEN 78 

80 OPEN 1*1,8, 128. "C:" 

85 PRINT ttl; PROGS: CLOSE ai:EH5) 

100 REM ^^^^^^ ^,^.^,.^,^^<,„^.„^,^^ 

J. 5 REM iK"«M'iK""Kw'Wy€MX'iM'M'M"KM'M'AW"Jt"K'M"iRR^ 

110 REM » CftS PR OGRAM DATA FOLLOWS * 

J.i5 K£i1 '3riR'K"iR;"M'S'Kw'W'K"K''WK"J6M'M W'KWMK'M'X W 

128 REM 

200 DATA 0,4,128,4,136,4,24,36,169,60, 

625 

202 DATA 141,2,211,169,152,141,10,0,16 

a J ii| o a 

204'&ATft 141,11,0,96,162.0,142,82,0,16 

8,794 

206 DATA 5,162,232,32,133,243,162,38,1 

42,240,1389 

208 DATA 2,169,61,142,225,5,32,164,246 

,174,1220 

218 DATA 225,5,202,16,242,160,6,162,40 

,32,1998 

212 DATA 133,243,173,88,0,24,105,180,1 

33,207,1286 

214 DATA 173,89,0,105,0,133,208,169,7, 

141,1025 

216 DATA 229,5,173,230,2,56,233,1,141, 

238,1300 

218 DATA 5,169,9,141,226,5,169,16,141, 

224,1105 

229 DATA 5,169,0,168,141,227,5,141,228 

5 1939 
222 DATA 133,205,141,227,5,162,2,142,2 
28,5,1250 

224 DATA 173,229,5,133,206,174,238,5,1 
73,227,1555 

226 DATA 5,73,255,141,231,5,145,205,20 
0,208,1468 



228 DATA 251,230,206,228,206,176,245,1 

74,228,5,1949 

230 DATA 173,229,5,133,206,173,227,5,2 

02,16,1369 

232 DATA 4,162,2,145,205,200,208,246,2 

30,206,1608 

234 DATA 173,230,5,197,206,176,234,173 

,229,5,1628 

236 DATA 133,206,174.228,5,173,231,5,2 

02,16,1373 

238 DATA 5,162,2,173,227,5,209,205,208 

,32,1228 

240 DATA 200,208,238,230,206,173,230,5 

,197,206,1893 

242 DATA 176,229,286,228,5,16,159,173, 

227,5,1424 

244 DATA 73,255,48,144,206,226,5,16,78 

,76,1127 

246 DATA 169,5,132,205,32,192,5,141,88 

,6,975 

248 DATA 173,222,5,141,87,6,150,0,177, 

205,1176 

250 DATA 32,192,5,141,98,6,173,222,5,1 

41,1015 

252 DATA 97,6,165,205,32,192,5,141,78, 

6,927 

254 DATA 173,222,5,141,77,6,165,206,32 

i 9 2 1 2 i 3 
256 DATA 5,141,76,6,173,222,5,141.75,6 
,858 

258 DATA 168,6,162,65,32,133,243,160,6 
,162,1123 

260 DATA 100,32,133,243,76,176,5,160.0 
,238,1163 

262 DATA 224,5,173,224,5,145,207,76.22 
3 4 A 2 5 ** 

264 'data 72,74,74,74,74,32,211,5,141,2 
22,979 

266 DATA 5,104,32,211,3,141,223,5,96,4 
1,863 

268 DATA 15,201,18,48,2,105,6,105,48,9 
6,636 

270 DATA 0,8,0,0,8,8,8,0,0,0,0 
272 DATA 125,127,32,32,32,32,32,65,84, 
65,626 

274 DATA 32,73,32,77,69,77,79,82,89.32 
,692 

276 DATA 84,69,83,84,127,127,127,127,3 
2,32,892 

278 DATA 32,32,32,98,121,32,65,87,77,3 
2,608 
280 DATA 65,78,65,76,79,71,32,35,49,49 

599 
282 DATA 127,127,155,127,127.127,127.1 
27,127,127,1298 

284 DATA 127,127,127,155,127,127,127,7 
3,84,69,1143 

286 DATA 82,65,84,73,79,78,83,127,127, 
127,925 

288 DATA 127,127,32,32,32,32,32,48,155 
,69,686 

298 DATA 82,82,79,82,32,64,45,62,36,88 
,552 
292 DATA 88,88,88,32,84,86,65,76,45^,62 

294 DATA 36,88,88,32,65,86,65,76,45,62 

, 643 

296 DATA 36,88,88,155,127,127,84,69,83 

,84,941 

298 DATA 32,32,68,79,78,69,155,8,0,999 

,1512 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



10 DATA 532, 
2,410,270,42 
65 DATA 697, 
47,80,347,90 
210 DATA 186 
2,170,529,18 
240 DATA 536 
97,658,42,7, 
270 DATA 283 
49,57,914,76 



746,142,858,536,112,943,67 

0,310,184,634,166,6935 

6 , 493 , 543 , 381 , 74 . 544 , 815 , 5 

6,866,434,989,7722 

,459,154,98,163,916,965,45 

6,439,486,139.164,5476 

,238,237,738,115,912,879,9 

185 , 785 , 871 , 876 . 8876 

,633,806.254,939,813,635,3 

2,802,793.89,8,8139 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 81 



10 REM KXKKKMKXKMKKKKKMKXKMKMKMKKXMK 
15 REM « MEMTE5T DISK FILE MAKER * 
28 REM * BY TOHV MESSINA K 

25 REM » fCJ fl.H.ft.L.O.G. 83 » 

30 REM XXWMKXKMKMKKXKXKKKMMKXKXKMKXM 

31 GRftPHICS 2:P0KE 712,96:? tt&i" ME 
MORV TEST":? «6:" DiskFile Maker":? 

32 ? »6;" wgQ analog 400/868":? tt6;" » 

33 ? «6;" by EflUSKH^HiE!!— 

34 POSITION 1,7:? »6"" 1il:!3^iinrnB disk as 

DB"':P0SITI0N 8,3:? U6;"T 

35 REM 

40 DIM PR0G5(5ie> :PNTRr7:LINE=198 

45 PR0G5(l,lJ=CHR5t255J : PROGS t2, 23 =CHR 

S(2553 :PR0GS(3,3)=CHRStl28J 

50 PROG$U,43=CHR$C43 ; PR0G5 (5, 5J =CHRS C 

43J :PR0GS(6,6J=CHR5C63 

55 LINE=LINE+2:F0R C0UNT=1 TO 10 

60 READ BYTE: IF BYTE=999 THEN GOTO 85 

65 PROGS (PMTR)=CHRStBVTE3 

70 PMTH=PHTR+l:TOTAL=TOTOL+BYTE:NEXT C 

0U«T:? "LINE:";LIHE 

75 READ CHECKSUM:IF CHECKSUM^TOTAL THE 

N TOTiiL = 0:G0T0 55 

80 ? "BAD CHECKSUM: LINE ";LIHE:5T0P 

85 T0TflL=TOTAL+BYTE:REAO CHECK5UM:IF C 

HECKSUMOTOTAL THEN 80 

30 OPEN ttl.8,e,"D:MEMT5T.0BJ" 

35 PRINT «1 J PROGS: CLOSE ttl:END 
188 REM 

185 REM XXKKKXKXXKXMKXWKKKMKKMKKKKKK 
lie REM » DISK FILE DATA FOLLOWS » 

115 REM KMMKKKKXXKMKMXXKKKKKXKXKKKKM 

120 REM 

200 DATA 162,0,134,82,160,5,162,162,32 

,133,1832 

282 DATA 243,162,33,142,248,2,163,61,1 

34,210,1401 

204 DATA 32,164,246,166,210,202,16,244 

,150,5,1445 

206 DATA 162,226,32,133,243,165,88,24, 

185,188,1358 

288 DATA 133,287,165,83,105,0,133,288, 

163,7,1216 

210 DATA 133,214,173,230,2,56,233,1,13 

3,215,1338 

212 DATA 163,3,133,211,163,16,133,203, 

36,163,1314 

214 DATA 8,168,133,212,133,213,133,285 

,133,212,1542 

216 DATA 162,2,134,213,165,214,133,206 

,166,215,1610 

218 DATA 165,212,73,255,133,216,145,20 

5,286,288,1812 

228 DATA 251,238,206,228,286,176,245,1 

66,213,165,2086 

222 DATA 214,133,206,165,212,202,16,4, 

162,2,1316 

224 DATA 145,205,288,208,246,230,286,1 

65,215,137,2017 

226 DATA 206,176,236,165,214,133,206,1 

66,213,165,1880 

228 DATA 216,202,16,4,162,2,165,212,20 

3,205,1333 

230 DATA 208,28,288,208,240,230,206,16 

5,215,137,1897 

232 DATA 206,176,232,138,213,16,173,16 

5,212,73,1664 

234 DATA 255,48,161,138,211,16,74,76,1 

13,5,1157 

236 DATA 132,205,32,134,5,141,18,6,165 

,217,1855 

238 DATA 141,17,6,168,8,177,265,32,134 

,5,877 

248 DATA 141,28,6,165,217,141,27,6,165 

,205,1181 

242 DATA 32,134,5,141,8,6,165,217,141, 

7,856 

244 DATA 6,165,206,32,134,5,141,6,6,16 

5,866 

246 DATA 217,141,5,6,160,5,162,251,32, 

133,1112 

248 DATA 243,160,6,162,30,32,133,243,7 

6,120,1205 

258 DATA 5,160,0,230,203,165,203,145,2 



07,76,1406 

252 DATA 137,4,72,74,74,74,74,32,151,5 

254 DATA 133,217,184,32,151,5,133,218, 
36,41,1130 

256 DATA 15,201,10,48,2,105,6,185,48,3 
6, 636 

258 DATA 125,127,32,32,32,32,32,55,84, 

65 J 626 

260 DATA 82, 73, 32, 77, 69, 77, 73, 82, S3, 32 

,632 

262 DATA 84,63,83,84,127,127,127,127,3 

264 DATA 32,32,32,38,121,32,65,87,77,3 
2,608 

266 DATA 65,78,65,76,73,71,32,35,43,43 

E a O r r r r 

268 DATA 127,127,155,127,127,127,127,1 

27,127,127,1238 

270 DATA 127,127,127,155,127,127,127,7 

3,84,63,1143 

272 DATA 82,65,84,73,73,78,83,127,127, 
127.325 

274 DATA 127,127,32,32,32,32,32,48,155 

,63,686 

276 DATA 82,82,73,82,32,64,45,62,36,88 

,652 

273 DATA 88,88,38,32,84,86,65,76,45,62 
,714 

280 DATA 36,88,88,32,65,86,65,76,45,82 

282 DATA 36,88,88,155,127,127,84,63,83 

,84,341 

284 DATA 32,32,68,73,78,63,155,65,226, 

2,806 

286 DATA 227,2,128,4,224,2,225,2,137,4 

,1015 

288 DATA 333,333 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



10 DATA 532,756,142,858,536,986,343,67 

2,383,278,426,547,177,312,187,7727 

65 DATA 636,168,700,8,438,675,383,74,5 

44,587,547,80,345,417,457,6713 

206 DATA 232,222,183,512,452,477,745,6 

11,156,569,589,142,776,438,17,6247 

236 DATA 591,708,337,883,861,124,132.1 

66,720,178,871,633,801,247,332,3244 

266 DATA 813,635,342,58,307,762,802,78 

6,82,938,872,283,7338 



WANT 

TO 

SUBSCRIBE? 

CALL 

TOLL FREE 

1-800-345-8112 

In Penna. 1-800-662-2444 



GET THEM WHILE THEY'RE HOT 



IF YOU OWN AN ATARI* 400/800 AND WOULD LIKE TO BACK UP YOUR AUTO-BOOT 
(BINARY)PROGRAMS ON CASSETTE OR DISK, THESE ARE THE UTILITIES FOR YOU. 



(1) BOOT TAPE BACKUP: ALLOWS YOU TO COPY 
AUTO-BOOTCASSETTESWITHOUT A DISK DRIVE. 
ALSO DISPLAYS A HEX LIST OF BOOT CASSETTE 

(2) TAPE TO DISK: BRING YOUR AUTO-BOOT 
CASSETTESUP TO DISK (BINARY FILE). 

(3) DISK TO TAPE: LETS YOU MAKE AN AUTO-BOOT 
CASSETTE FROM A BINARY DISK FILE. 



NOTE: 

•THESE UTILITIES REQUIRE 48K. 

•THEY WILL NOT DO MULTISTAGE LOADS. 

• PROGRAMS ARE NOT INTENDED FOR PIRATING BUT 
FOR BACKING UP PERSONAL ARCHIVES. 

• BECAUSE IT IS POSSIBLE THAT THIS PROGRAM MAY 
BE REPRODUCED, THERE IS A GUARANTEE OF 
REPLACEMENT ONLY-NO REFUNDS. 

• •REGISTERED TRADE MARK OF ATARI 

• ALLOW 4-6 WEEKS FOR DELIVERY 



MAIL TO: 

PROGRAMS PLUS 

P.O. BOX 369 

DEER PARK, NEW YORK 11 729 

ORDER BY PHONE#516-242-1945 

NAME 

STREET 

CITY 



STATE / Zl P 

■r CHECK PROGRAM DESIRED: 



OBOOTTAPE BACK-UP 

TAPE TO DISK 

DISK TO TAPE 



CHECKONE 
()1 FOR $29.95 
()2FOR$39.95 
()3FOR$49.95 

CREDIT CARD # 



CHECKONE 
OCHECKOR 

MONEYORDER 
MASTERCARD 
OVISA 



ADD $2.50 FOR SHIPPING AND HANDLING 



IF YOU HAVE WRITTEN ORIGINAL SOFTWARE FOR THE ATARI 400/800 AND WOULD LIKE 
TO SUBMIT A NON-RETURNABLE BACK-UP COPY, WE WILL EVALUTE YOUR PROGRAM 
FOR POSSIBLE NATIONAL MARKETING. SEND TO: PROGRAMS PLUS, P.O. BOX 369, 
DEER PARK, NEW YORK 11729. 



'^eJUo.. 7i^ek€ 




V 




We are publishers of the top-selling 
Scott Adams Adventure Series and 
other fine Entertainment and 
Applications Programs. 



And we're publishers of some of 
the finest microcomputer 
software programs available. 
If you can write a top-quality 
program, or can convert some of 
our best-sellers to other 
computers, we want to hear 
from you — Now. 
We have the advertising, 
international distribution, 
manufacturing and marketing 
know-how to send top-quality 
programs to the top of the 
charts. 

If your program is top quality — 
give us a call, or write for our 
Adventure International Author 
Information Kit. 

Copyright f' 1983 

dventnr6 

INTERNATIONAL 

Box 3435 

Longwood, Florida 32750 
Telephone: (305) 862-6917 
Ask for Author Assistance 




m,,t . ., n l>im „ .. , w i. h ^ *- *• 



"UXIKMUFFY, 
ACOMPUTERGAMEI 
PORUSr 




IPREPPIE 

n 

IS HERE! 

I That's right you LaCoste- 
clad Atari owner. 
Wadsworth Overcash, 
our Weejuned young 
prepster continues his 
exploits — this time at 
college and just like 
daddy, he's decided to 
pledge a fraternity. Have 
we got surprises for him 

I (and you).' 

AVAILABLE NOW 

AT FINE COMPUTER 
STORES EVERYWHERE 



ikm^ 




Good Golly! What A GAME! 

The original arcade game PREPPIE! will give you hours of toe-tickling fun. You take the controls, moving your young 
prepster about on the golf course. And what a golf course! It's unlike any you have ever played on before. There are dangers 
everywhere, and only you can keep the little Ivy Leaguer from a fate worse then Penn State! 

PREPPJE! is written in state-of-the-art machine language. Is joystick compatible and fully utilizes the Atari's sound and 
graphics capabilities. Quite frankly, it will give you the most fun you can have on an Atari microcomputer. 

PREPPIE! Is available at fine computer, book, and hobby stores everywhere. 

An exclusive game trom 

To order, see your local dealer. If he does not 
have the program you want, then call 
1-800-327-7172 (orders only) or write for our 
free catalog. 




O 



"My Atari never did things like this before!" 
—Holister Townsend Wolfe 



/K^dventure 

*-^f -^^ INTERNATIONAL 



"I had so much fun I almost blew my 
doughnuts." 

— Theodore Boston III 



Published by ADVENTURE INTERNATIONAL 

a division of Scott Adams, Inc. 
BOX 3435 • LONGWOOD, FL 32750 • (305) 862-6917 



"I haven't had this much fun since Buffy 
and I w/ent to Princeton for the weekend." 
— Martha Vineyard 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 85 



A DISK CATALOGING UTILITY 



16K disk 



by Bert Williams and Tom Hamel 

Aaybody who owns and uses a disk drive quickly 
accumulates many diskettes loaded with various 
programs and utilities. It is not uncommon to wonder 
what files are on a particular diskette or on what 
diskette(s) a particular file can be found. 
CATALOG. BAS (see lisdng) creates a listed file 
(FILENAME. LST) that stores the above 
information for later retrieval, again by running 
CATALOG. BAS. The program is selfprompting and 
quite friendly. Simply type in listing #1 and save it 
with SAVE "D:CATALOG.BAS" or whatever file 
name you wish to use. 

A. Creating FILENAME.LST. 

Run CATALOG.BAS and select from the main 
menu option "1 FILE MAKER." Number the 
diskettes you wish to catalog using numbers from 
1 to 726. You need not number the diskettes 
consecutively and you can catalog the diskettes in 
any order. When prompted, press "1 IF NEW 
FILE," place a numbered diskette in drive one, 
and press RETURN. CATALOG.BAS reads the 
disk directory and creates data statements with the 
information in the directory. Continue until all 
diskettes have been cataloged. Pressing 'O' will list 
FILENAME.LST to the disk in drive one. But 
first, be sure the diskette in drive one is the dis- 
kette you wish to write this file to. 

B. Updating FILENAME.LST. 

This is the same as A above except that when 
prompted you place the disk with FILENAME. 
LSTin Dl then press "2 IF UP-DATE." You may 
update with a diskette number that has or has not 
been previously cataloged. Note: You can catalog 
diskettes that do not have a directory by inter- 
rupting the program with the BREAK key and 
adding the data statements as needed. For diskette 
n, data statements are created at lines 1000+40*n, 
1000+40*n+2, etc., as needed. Study the data 
statements created by the program (lines 1040- 
30100) to see the format needed. If data state- 
ments are user created you still must go through 
the file-maker-update options to get this infor- 
mation written to FILENAME.LST on the disk. 



C. Finding a File 

Run CATALOG.BAS and select from the main 
menu option "2 File Finder." From the file search 
menu select the "1 File Name" option and then 
indicate the name of the file you want to find. All 
occurrences, if there are any, of the indicated file 
will be listed on the screen. Wild cards will not 
work with this option. 

D. Listing the Contents of a Disk 

From the file search menu select the "2 Disk 



ATARI^SOO^ 
OWNERS 

with 3 16K Memory Boards 



Question #1: 

How do you squeeze 2 
Atari memory boards into 
one memory slot to have an 
open slot? 

A. Use a hammer. 

B. Pliers. 

C. The Mosaic Adapter. 

D. Weld them together. 

E. None of the above. 



Y083-Zl'S-008-l 4E Jaieap „,DIVSOW jsaieau .inoA -, 
joj Mou 1IB3 e )0(S uado ub miM jAIVil MSt "O'^ ssaiS siu i 
•pjEoq aajdepB 3!Eso[/(j auo 04UO ^ij spaeoq v^VSP 



Great Software • Great Service •JGreajTrices 





from Sierra On-Line 

Frogger 



16K Tape /32K Disk $23.88 

The official Atari computer version of the 
smash coin-op hit. Beautiful graphics. 
The disl< version features seven different 
lunes. 

All Sierra On-Line programs, including 
Ulysses & The Golden Fleece and The 
Wizard & The Princess in stock and 
available at similar savings. 

from Lightning 

Mastertype 

32K Disk $26.88 

A breakthrough in interactive education- 
al software. Learn to type as you battle 
wave after wave of invading words riding 
in hi-res spaceships! 1 7 pre-programmed 
lessons, plus others that you can create, 
guarantee continuous challenge and help 
you develop mastery of the Atari Key- 
board. ^^^ 

from SSI 

The Cosmic 
Balance 

48K Disk $27.88 

Design and build starships, then battle it 
out in this combination strategic/arcade 
offering from SSI's Rapid Fire series. 

All SSI programs including Tigers in the 
Snow and The Battle of Shiloh in slock 
and available at similar savings. 

from Epyx 

Crush, 

Crumble 

& Chomp 

32K Tape or Disk $21 .88 

Take on the persona of any of six demon- 
ic horror-film beasties (or create your 
own on disk). Then, pick out a mouth- 
walermg metropolis and head for those 
buildings and bridges. 
All Epyx programs including Temple of 
Apshai. Dragon's Eye and Monster Maze 
in slock and available at similar savings. 






from Datasoft 

Text Wizard 



48K Disk $68.88 

A powerful, easy-to-use word processor. 
Perfect lor writers, students and small 
business people. Recommended for use 
with Epson, Prowriter, NEC 8023 and 
Atari 825 line printers. 
All Datasoft programs, including Zaxxon 
and Sands ol Egypt available at similar 

savings. 

from Infocom 




Zork I, II, or III 

32K Disk $26.88 
yourclioice: 



The feature-loaded Rolls Royce of text 
adventure games. These three games 
are so popular that there's now even a 
National Zork Users Group! 
All Infocom programs including Deadline 
and Starcross in stock and available at 
similar savings. 



from Sirius 

Bandits 



48K Disk $23.88 

Bouncing nerve gas balloons, energy 
shields, space bandits attempting to 
steal your supplies — they're all on the 
screen in one of the best space arcade 
games yet. 

All Sirius Software including Way Out 
and Sneakers in stock and available al 
similar sayings. 

fromThorn-EMI 





Home 

Financial 

Management 

16K Tape $22.88 



Sel up a budget and then see where you 
stand financially either in figures or 
through bar charts. This program should 
pay for itself! 

All Thorn-EMI tapes including Figure 
Fun available al similar savings. 

Please call or write 

for FREE CATALOG 

Prices good thru May 31 . 1983. 




from MUSE 

Castle 
Wolfenstein 

48K Disk $19.88 

One of the most popular games ever re- 
leased for the Apple is now available to 
you. Try to find the war plans and es- 
cape from the Nazi stronghold in this ex- 
citing blend of strategy and arcade 
action. 



fromThorn-EMI 

Soccer 

ROM Cart. $34.88 



In our opinion, this is the best arcade 
sports game available today. Play vs. the 
computer or human opponents. Fantas- 
tic graphics. 

All Thorn-EMI Cartridges including Sub- 
marine Commander and Jumbo Jet Pilot 
in stock and available at similar savings. 




fftdlftWtfR 



t~. f 



from Spinnaker 

Facemaker 



'48K Disk $23.88 

Let your kids learn to write simple pro- 
grams while they have a ball creating 
and animating laces. It's more fun than 
Mr. Potato Head ever was! Ages 4 up. 

All Spinnaker Soltware including Story 
Machine and Snooper Troops #1 and #2 
in stock and available at similar savings. 



from Broderbund 




Choplifter 



48K Disk $23.88 

This was the Apple best-seller of 1982. 
Now it's your turn to battle tanks and 
fighter planes as you rescue hostages 
with your trusty chopper. 

All Broderbund Software including Laby- 
rinth. Stellar Shuttle and David's Midnite 
Magic in stock and available at similar 
savings. 



g^ 




VISA 



Mail order prices do not apply 
at our retail location. 



HOW TO ORDER: 

Use pi.:'! or phuiK;. For immediate shipment pay by f'/loney 
Older, Certified Check, Cashiers Check. VISA, or Master 
Charge (add 4% tor credit card'i. Personal checks are ac- 
cepted bul rflQuire 1-3 weeks to clear. 10% required for 

coo. 

SHIPPING &HANDUINC. 

$2 50 for oiders under $50; free shipping over $50; 
ftla.'.s residents add 5% sales tax. Prices are mail order 
only and aie subject to change VvJilhoul notice. 



-SOFTVIMRE 

(617)369-1992 |^ | ICE^" 

for orders and information W^ m \. m M 
phone hours: 10-6 EST Mon. -Sat. ■ ■■■^^■■■^ 

45 waiden St., Box aa, Concord, Mass. 01742 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 87 



Number" option and input the number of the disk 
you want searched. All files on this disk and 
sectors used/free information will be listed. 

E. List of Cataloged Disks 

Option "3 Cataloged Disks" of the file search 

menu lists all the disks that you have cataloged. 

This could be useful before using the "2 Disk 

Number" option. 

Errors have not been trapped within the program 
so it is possible to cause the program to abort by 
inputting a wrong data type. Also, the break key can 
be used to stop execution since it has not been 
disabled. Should you unintentionally cause the 
program to abort simply run the program again and 
continue as before. The program and data statements 
created should still be in the computer. D 

Following is a description of the major 
components of the program listing as referenced by 
line numbers. 

10-25: Initialize variables 
30'65: Heading 

70: Dimension strings 
75-110: Main menu options 
115-125: Enter FILENAME.LST if not already 

in machine 
130-160; File Search menu 
165-305: File and disk searching procedure 
310-335: File Maker menu options 
340-495, Creates or updates and writes 
530-550: FILENAME.LST to disk 
500-525: Headings for file maker/file finder 

menus 
555-635: Various subroutines used in above pro- 
cedures 



10 REiftD QO, 01,02,03, 04, Q5,«6, 07, Q8,Q9, 
010,011,012,013,014,017,028,022,038,03 
1,034,043,075,082,0125,0255,0560 
15 REOD 0535,0555,0559,0789,0718,0712, 
0752,0764,0842,0999,01000 
29 DflTfl 0,1,2,3,4,5,6,7,8,9,18,11,12,1 
3,14,17,20,22,30,31,34,43,75,82,125,25 
5,500,535,555,559,709,718,712,752 
25 DATA 764,842,999,1600 
38 GHftPHIC5 01+017; ? «06:? tt06: 
- »2'-' -'i" •*,-*-•' ■'yj 



;? tt06j" 



35 
40 
45 
50 
55 
60 
65 
T: 



tt06j" 

tt06;" 

ttQ6j" 
006 ;■' 
tt06j" 

aoe;" 

tt06j" 



^ disk catalog 

H oxsa 

MCLARKSmH.E,TH 




2" 



FOR MAI 



:01 TO OieO0«Q2:NEXT WAIT 
70 DIM FILESf017) ,CSC0173,FASCQ17J 

75 G05UB 0555:GRAPHIC5 01 + 017 : Z=532?9 : 
P05ITIOM 02,00:? ttQ6; "PROGRAM OPTIONS 
■■:P05ITI0N 03,02:? tt06;" fl file waker" 

76 P05ITI0N 01,01:? «Q6; "!3" : P05ITI0H 
1,02:? 006 ;"[3": POSITION 01,03:? «06;"11 
":P0SITI0H 01,04:? »06;"EI":P0SITI0N 01 
,05:? ttoe;"!" 

80 POSITION 04,03:? «06;"S file finder 
":P0SITI0M 04,04:? «06;"S exit prograM 



85 POSITION 09,06;? HOG ; "!iS!" : POSITION 
01,08:? tt06;"PRE55 SS^SB FOR HI" 
30 POSITION 01,09:? ttQ6;"PRE5S"aSEGG 
FOR 0": POSITION 01,016:? ttQ6 J "PRESSOE 

95 BrPEEKtQ764J :IF PEEK{ZJ=06 OR B=031 

THEN GOTO 031*018 
100 IF PEEKCZ}=Q5 OR 8=030 THEN GOTO 
125-010 

105 IF PEEKCZJ=03 OR B=028+Q6 THEN POK 
E Q764,Q255:END 
110 GOTO 082+013 

115 RESTORE O1000:READ D, FILES, 3 
120 IF DOQ999 THEN GOTO 0125 + 05 
125 GOSUB 0500+0125+018:? "B" 
130 GOSUB 0535-020 

135 POSITION 05,03:? "type number for 
kind of li5ting"':P0SITI0N 012,016:? "1 

file naMe":POSITION 012,012 
140 ? "2 disk nUHber":POSITION 012,014 
:? "3 cataloged disks":P05ITI0N 012,01 
4+02:? "4 prograw options" 
145 B::PEEKfQ7643 :IF B::Q30 OR B = Q3i THE 
H GOTO 020*08 

150 IF 6-020+04 THEN POKE 0764,0255:? 
r.HRSt0i?5? ;GOT0 075 

152 IF B-Q20+Q6 THEN GOTO 020*030 
155 GOTO 0125+020 

160 GOSUB 0555: IF B=O30 THEM GOTO 017* 
018 

165 ? "type in nane of desired file":I 
NPUT CS:P05ITI0H 018,02:? "I'M looking 
. . .":GOTO 082*02+011 

170 ? "type in disk number desired";:! 
NPUT K:IF X=0999 THEN GOTO 013*026 
175 RESTORE 01800+ (Q30+Q10)*K 

180 READ D, FILES, S:IF FILES="END OF DA 
TA" THEN GOTO 0255 

181 IF DOX and C5=" " THEN POSITION C 
,L:? "SORRY I COULD NOT FIND DISK '"JK 
J :G0T0 0125*02+036 

185 IF D = K then U = U + S:IF S=:Q0 THEN ? " 
":FILES(0i,08) ;"/";Uj" USED":G0T0 025 
5 + 010 

190 IF FILE5=CS AND L<Q6 THEN ? CHR5 tO 
125) :P05ITI0N 010,02:? "I'M looking.,. 
" ■ FA$ — CS 

195 IF LrOlO+013 THEN POSITION 04,02:? 
"I'M GOING TO CLEAR THE SCREEW":FOR U 
AITr-Ol TO 01800: NEXT WAIT:L = «5 
200 IF FILE$=CS THEM L=L+Q1 : POSITION C 
.l:? FILES;" ";S;" IS OH DISK U '•;{> 
205 IF F>U9 THEN H=Q1:IF F>Qi8+Qll THE 
H H=026+01:IF F>Q12+Q30 THEN H--02 
210 POSITION H,T+01:IF S=Q0 THEN GOTO 
0125*02-020 

215 IF D::K THEN ? F;" ":FILES; 
228 IF D=K AND H>=Q2 THEN GOSUB 0559+0 
11:? 5:FzF+01:T=T+01 

225 IF D-K AND H<02 THEN GOSUB 0559+01 
l:? S:F:^F + 01:T = T + 01:IF F = 022 THEN POKE 

082,Q20:T=00:P0SITI0H 020,01 
230 IF 5=00 THEN IF D.-K THEN ? F;" ";F 
ILES;"' ":F=F + 01:T=T+01:IF F=Q22 THEM P 
OKE O82,O2e:T=O0:POSITION 020,01 
235 IF F = 043 THEN POK E 082 , 02 :H--Q2 : T- 

0JJO5ITIOM 02,022: ? "ffiHiiaraKEllIUaB 

240 IF F=043 THEN B=PEEK f 07643 : IF B=01 

2 THEN ? CHRSt0125J :GOTO 030*06 

245 IF F=Q43 THEN GOTO 012*020 

250 GOTO 030*06 

255 IF X=a0 THEN GOTO 0125*02+028 

260 IF D=0999 AND F=Q1 THEN POSITION C 

,L:? "SORRY I COULD NOT FIND DISK '";K 

;"'":GOTO 0125*02+030 

265 POSITION 01,00:? " Disk U " i 

X;" ":POKE Q82.Q2:P0KE 

0752,00 

270 IF X=O0 AND CSOFAS THEN POSITION 

C,L:? "I COULD NOT FIND • " ; C5 ; " ' " : ? :? 

" PLEASE RECHECK VOUR DATA" 
280 POSITION O10,O22:IF X<>Q0 THEN POK 
E 0752,01:? "Another disk? Y/H" 
285 POSITION O10,T+O2:IF K=O0 THEN ? " 
another file? Y/M" 



PAGE 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



290 B=PEEKC0764) :IF B=043 flHD H=QB THE 

N G05UB Q555:G0T0 «82»02+01 

295 IF B=Q43 flWD K<>Q0 THEN 605IJB 0555 

:GOTO Q17««10 

3:0a IF B = Q3a + Q5 THEN GOTO (175 

305 GOTO Q30»Q1O-Q1O 

310 POKE Z,Q7:P0KE 0764,0255 

315 G RAPHI CS Q1+Q17 : POSITION 00,01:? tt 

06j" fUJ^S D IF new f ile"':P05lTio«i oe, 

03:? »06;" fMiki IF update" 

320 POSITION 00,05:? ttQ6;"IF UPDATE PL 

flCE DISK WITH 'filenaMe. isf IN 

DD" 

322 POSITION 01,018:? tt06j"f3I^ B FOR 

options " 

325 B=PEEK(Q764J :IF B=031 THEN GOTO 01 

25*03-020 

350 IF B=Q30 THEN T=030:60T0 034*010 

332 IF B-Q20+Q6 THEN POKE 0764,0255: GO 

TO 075 

335 GOTO 0255+075-05 

340 RESTORE OlO0O:REfll> D,FILE$,5 

345 IF DOQ599 THEN GOTO 0125*03-020 

358 GOSUB Q500+Q125+010:? "Q" 

355 POKE Z,Q7: GRflPHI C S 01+017 : P OSITION 

02,00:2 H06;"llTCfn8 l-'H»Ur-rfi3d mai 



368 POSITION 03,02:? ttQ6;"put disk in 
E[n":P0SITION 03,05:? tt06;"when prortPte 
d":POSITlON 04,04:? It06;"t <jpe d isk S" 
365 POSITION 03,07:? ttQ6 j 'llJULM:! HTElftm 
": POSITION 04,08:? tt06;"WHEH REiiDY" 
370 B=PEEK £07641 : IF B=Q12 THEM GOSUB 
508:60T0 0255+0125+018 
375 GOTO 0255+0125-018 

388 GOSUB 0580:P0SITI0M 09,04:? "if do 
ne type 9":P05ITI0W 09,05:? "and press 

RETURH":POSITION 017,07:? "SB" 
385 POSITION 09,09:? "Change disk 2" 
398 POSITION 09,011:? "typt niiHber of 
di5k":P0SITI0N 010,013;? "and press RE 
TURM":P05ITI0H 017,Q17 

395 INPUT K:IF K-OO THEN GOTO Q508- t03 
0+Q5) 

488 IF T=030 THEN ? CHRS £0125} : POKE 05 
59,O0:PO5ITIOH 02,04 

405 IF T=Q30 THEN FOR 1=01888+ £038+010 
3*H+Q2 TO 01008+ £03a+0183»K+Q22+02 5TE 
P 02:? I: NEXT I: GOSUB 0535 
410 POKE Q559.O0:LIME=O1000+£O30+O183» 
K:CnK:OPEH ItOi , 06,00, "Dl :*.*" 
415 ? CHRS £01255 :P05ITI0N 02,04:? LINE 
;" DftTfl ";:F0R H=Q1 TO 05 
420 INPUT tt01,Ffl$:IF FA5 £05, 083 ="FREE" 

THEN ? C;",";FflS;",0":GOTO 043*018+03 

e 

425 ? C;","::FOR 1=03 TO 018:IF FA5<I, 

I3<>" " THEN ? FA$£I,I) j :NEHT I 

438 IF Ffl5 £011, 0113 <>■' " THEN ? "."; 

435 FOR 1=011 TO Q13:IF FftS£I,I3<>" " 

THEM ? FftStI,I3 ; :MEKT I 

440 ? ",";FflS£Q2+013,Q173; 

445 ? ",";:IF W=05 THEN ? "^''rREH ESC 

DELETE 

458 IF W=Q5 THEN GOSUB 0535 

455 NEHT W: LINE=LIHE+Q2 : GOTO 0508- £075 

+ 0183 

468 CLOSE tt01:G0SUB 0535:G0T0 0255+012 

5 

465 GOSUB Q588:P0SITI0N 010,06:? "3 ne 

w file «ill";P05ITI0N 018.07:? "be wri 

tten to Dl." 

470 POSITION 010,08s? "be sure the dis 

k":P05IT10« 010,09:? "has enough root*. 

":P0SITIOM 018,018:? "press RETURN whe 

n ready" 

475 B=PEEK £07643 :IF BO012 THEN GOTO 

500- £020+053 

488 POKE Q559,Q0:? CHRS £01253 : POSITION 

02,04;? "LIST"; CHRS £0343 ; "Dl : FILENAME 
.LST"; CHRS £0343;","; 01808;",", -01808*03 


485 GOSUB 0535: GOSUB Q508 
490 POKE Q559,034:P0SITI0H 07,010:? "a 

f i i e ' FILEM flME . LST ■ has b 

een KlSDSSi on this disk." 
495 T "Q":F0R WAIT = £11 TO 01880 :NEKT HA 



IT:G0TO 075 

508 POKE 0764, 0255: GRAPHICS 08:P0KE 07 

52,Ql:P0KE Q789,ai25+O30:POKE 0718,08: 

POKE Q712,146:P0KE 0559, 034 :POKE 082,0 

2 

505 I=PEEK £5603 +PEEK £5613*256+06: POKE 

I-03,Q82-Q12:F0R J=O0 TO 02:POKE J+I,Q 

6: NEXT J 

518 POSITION 03,00:? ttQ6:"d isk d irect 

ory":P05ITI0N 05,01:? «Q6;"QBBB fflSBH 

" ; RETURN 

515 POKE 0764,0255:GRAPHICS QO:POKE 07 

52,01:P0KE Q709,Q125+Q30 : POKE 0718,00: 

POKE Q712,146:P0KE 0559 , 034 :POKE 082,0 

2 

520 I=PEEK £5603 +PEEK £5613*256+06: POKE 

I-a3,082-012:F0R J=Q0 TO 02;P0KE J+I,Q 

6:NEXT J 

525 POSITION 03,00:? ttQ6;"diSk direct 

ory":P05ITlOH 05,01:? ttQ6;"QaDB aHaSE 

" : RETURN 

530 ? CHRS £01253 :POKE 0559,00:P0KE 076 

4,0255:P0SITI0N 02,04:? "ENTER" ; CHR5 £0 

343 ;"Dl:FILENAME.LST";CHRS£Q34J 

535 ? :? :? :? "CONT" :P051TI0M 02,08 

548 POKE 0842,013:ST0P 

545 POKE 0842,012 

558 RETURN 

555 ? CHRS£Q1253 :C=Q5:L=Q5:U=Q8:F=01:H 

=Q2:T = O0:OS=" ":Ffl5=" •••.K-QB 

560 GRAPHICS QO:POKE 0789, 02e+?>6 : POKE 

Q718,017:P0KE 0712, 016+016 : POKE 0764,0 

255:P0KE Q752,01:RETURN 

570 C=H:IF H>=Q2 THEN C=C-01 

575 IF S<O10 THEN POSITION C+Qi?+01,T+ 

01:G0T0 0559+031 

588 IF S<018*Q18 THEM POSITION C+017,T 

+01:G0T0 0559+031 

585 POSITION C+Q14+02,T+01 

590 RETURN 

688 K=01:? CHRS £01253 : GOSUB 0535-020 :P 

OSITION 04,01:? tt06j"J[BHS iiHIMBJIiH" : ? 

605 RESTORE 0ie00+X*O2*Q20 

618 READ K:IF X=0999 THEN GOTO 0580+01 

25-05 

613 IF PEEK £082+033 >=Q38+05 THEN ? : ? 

515 ? Kj" "J :X=X+Ql:GOTO 038*020+05 

628 POSITION 08,028+01:? "Press RETURN 

for Menu" 
625 B = PEEK£Q7643 :IF BO012 THEN GOTO 
500+0125 

638 GOTO 0125+05 

635 GOSUB Q555:P05ITI0N 03,018:? "Stan 
d bM While I load the file...":FOR HAI 
T=Qi TO 0752: NEXT WAIT: GOSUB 0535-05 :R 
ETURN 
38108 DATA 999, END OF DATA,-1 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



18 DATA 266,444,239,822,52,897,941,994 

,257,346,498,88,228,418,627,7117 

80 DATA 1,878,40,142,838,933,411,226,1 

17,781,478,879,708,354,251,7829 

152 DATA 275,177,231,328,202.781,80,18 

9,766,36,324,368,797,599,678,6243 

220 DATA 568,576,645,142,816,916,154,3 

39,267,169,66,553,986,48.414,6659 

380 DATA 729,540,884,382,724,892,675,6 

35,553,572,234,685,789,381,307,8982 

365 DATA 329,461,38,458,48,179,838,684 

,684,32,786,121,19,50,515,5134 

440 DATA 876,463,682,818,974,520,64,27 

,15,639,993,268,509,498,797,8863 

515 DATA 517,499,429,445,809,994,185,6 

04,47,948,680,141,284,535,616,7733 

680 DATA 136,313,694,718,288,267,881,3 

48,428,537,4618 



WHEN YOU SIT DOWN TO A 
SCOTT ADAMS" GRJiPHIC ADVENTURE 




twrLflWic 




That's right ~ anything can happen, and it usually 
does! Because with a Scott Adams Graphic Adventure, the 
fantastic is as close as your computer — and your own 
fertile imagination. Each S.A.G.A. features the finest in hi- 
resolution graphics — graphics which compliment and 
enhance the classic text — and, they can be toggled on or 
off with a single keystroke, too. Plus, optional Votrax Type 
'N Talk™ and printer compatibility give you the flexibility to 
add new dimensions to your Adventuring — when you're 
ready. 

The incomparable S.A.G.A. Series — experience the 
magic yourself. But be prepared for anything. 



Also, look for the Scott Adams Text 

Adventure Series on ttiese fine computers: 

TRS-80 • COMMODORE VIC • NEC PC-8001 

TEXAS INSTRUMENTS 99/4 • CP/M Z-80 



A^dventure 

i^iii*^ I N T E R N A T 1 O N A L 



S.A.G.A. #1 — Adventureland (Skill Level: Moderate)' 
APPLE 2 PLUS 48K Disk (DOS 3.%pf!«<rPiS-0201 $39.95 

ATARI 48K Disk 052-0201 $39.95 

S.A.G.A. #2 — Pirate Adventure (Skill Level: Beginner) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0202 $39.95 

ATARI 48K Disk 052-0202 $39.95 

S.A.G.A. #3 — Mission Impossible (Skill Level: Advanced) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0203 $39.95 

ATARI 48K Disk 052-0203 $39.95 

S.A.G.A. #6 — Strange Odyssey (Skill Level: Moderate) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0206 $39.95 
ATARI 48K Disk 052-0206 $39.95 

PRICES SUBJECT TO CHANGE 
^.^ To order, see your local dealer. H he does not have the program, then call 
&^ 1.800-327.7172 (orders only please) or write for our free catalog. 
C Published by ADVENTURE INTERNATIONAL 

I a subsidiary ot Scott Adams, Inc. 

IM BOX 3435 • LONGWOOD, FL 32750 • (305) 830-8194 



A.N.A.L.O.G, COMPUTING 



ISSUE 11 





DIMENSION! 



16K Cassette/24K Disk 
by Brian Moriarty 

Adventure is an entertainment ideally suited to 
the home ccmiputer. No arcade game can offer the 
logical challenge and intellectual involvement of a 
gt)oJ adventure program. 

Unfortunately, most of the adventures available 
for the ATARI require more than 16K of memory to 
run. This prevents many owners of the ATARI 400 
System from enjoying the excitement of adventure. 
And very few text adventures take advantage of the 
ATARI'S unique hardware capabilities to produce a 

A.N.A.L.O.G.'s Adventure in the 5th 

Dimension addresses both of these problems. It's a 

"%^^jj|gj||^^xt adventure with all the features 

'y?ffl*9' '^exp'eff^ff^ commercial product — a large 

vocabulary, blinking cursor, independent scrolling 

window and the ability to saV^ft^ load games. 

Don't be fooled by the fact that The 5 th Dimen- 
sion is written in ATARI BASIC. The program uses 



machine-language subroutines to give you speed per- 
formance that rivals even the most expensive com- 
mercial adventures. Best of all, the whole thing will 
fit (just barely) in a 16K cassette-based system! 

THE GAME SCENARIO 

Few of our national treasures are more secure than 
the original Declaration of Indepencience. It's kej^t at 
the Library of Congress in a closely guarded display 
case, sealed in an atmosphere of inert gas to preserve 
its integrity. The entire display can be retracted deep 
into the earth at the touch of a button. Stored in this 



underground vault, the Declaration is capable of sur- 
viving the most vicious enemy assault, including a 
thermonuclear attack. 

One afternoon, as a gaggle of tourists stood 
admiring the priceless document, a shining dotir of 
light appearecl over the display case. The crt)wd 
v\'atched in helpless amazement as alien beings 
reached their S-dimensional fingers thrt)ugh the 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 91 



bulletproof glass, snatched the Declaration and 
vanished without a trace! 

You are a top-notch private investigator, hired by 
the government to retrieve the Declaration. You 
must search the city of Washington for clues, find a 
way into the alien universe, locate the Declaration 
and return it to the police station. 

In your search, you will encounter weird 
technologies and multi-dimensional terrors never 
before seen. It takes skill and insight to outwit the 
aliens — and plenty of patience to navigate the 
streets of Washington! 

Typing It In 

You will notice that our source listing for The 5th 
Dimension is un-encoded; that is, the code has not 
been scrambled to prevent you from seeing possible 
clues. We decided not to scramble our listing 
because encoded programs are very hard to type, and 
they make it nearly impossible to learn how the 
program works. 

It is VERY IMPORTANT that you type each line 
of the program EXACTLY as you see it printed. 
Include all of the spaces and control characters; yes, 
even the REM statements! Save every few lines of 
new code in case your cat pulls out the power cord. 
Be especially careful with the DATA statements at 
the end of the program. And don't try to RUN 
anything until you have used D:CHECK or 
CiCHECK to guarantee the accuracy of your work. 

Playing The Game 

After your copy of The 5th Dimension has 
passed the CHECK routine without errors, SAVE a 
perfect copy into a disk or tape. Now you can type 
RUN. The title screen will appear along with the 
message "Initializing." After about five seconds, 
you'll see the following prompt: 

Press START to being new game. 
Press OPTION to restore old game. 

Press the START key. Your screen should now 
look like this: 



V0UP locavisni 

litr»»t corner. 



Vou can 90I N 5 „ 

Vou >••! Morning paper 



\ 



w 



Adventure in the 5th Dimension 



The screen is divided into five imaginary text areas 
or "windows." The black response window at the 
bottom accepts commands from the user, and 
displays descriptions of objects and the results of 
your actions. A blinking cursor in the response 
window indicates that the program is waiting for new 
commands. 

The location window at the top of the screen 
gives you a brief description of your immediate 
surroundings. Underneath it is the compass 
window, which indicates all of the possible exits 
from that location. 

The objects window shows a list of all objects 
visible at the current location. The bottom of the 
blue screen area is the inventory window, which 
lists whatever items you may be carrying. 

Like most text adventures. The 5th Dimension 
understands two-word sentences in the form VERB- 
(space)-NOUN. Try typing the sentence TAKE 
PAPER on the starting screen. The "Morning paper" 
will vanish from the objects window and reappear in 
your inventory window. 

You can interact with objects on the screen just 
like you can in real life. Watch the response window 
as you type the sentences EXAMINE PAPER and 
READ PAPER. When you're done, the sentence 
DROP PAPER will return it to the object window. 

Part of the fun of adventuring is finding out which 
verbs and nouns the program will understand. If you 
type an illegal or misspelled word, you'll see the 
message "1 don't understand — try again" in the 
response window. 

Single-Character Commands 

The 5 th Dimension also understands a limited 
number of single-character commands. These are 
used to control your movement, and to perform 
other special functions. 

MOVEMENT COMMANDS: 

N — North S — South E — East W — West 

U — Up D — Down 

OTHER COMMANDS: 
I — Inventory H — Help Q — Quit/Save Game 

The movement commands let you go in any of the 
directions indicated in the compass window. The "I" 
command updates the inventory window so you can 
see what you're carrying. The inventory window is 
also updated whenever you TAKE, DROP or 
THROW anything. 

The "H" command will give you a brief hint 
appropriate for that location. "Q^' is used to exit the 
program, and to save games. 

Saving And Loading Games 
The 5 th Dimension allows you to save your cur- 
rent game status on disk or tape. To use this feature, 
make sure your storage device is properly connected 
and loaded with a blank tape or formatted disk. Type 
the command Q,(Quit) and answer Y to the "Save 



PAGE 92 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



Game?" prompt. Then indicate whether you are 
saving to disk or tape. 

Don't be frightened when the screen goes black. 
The program turns off ANTIC during the game 
saving and loading functions to prevent the display 
from going crazy. When the save is complete, the 
screen will return in all its glory and you can 
continue the game. I/O errors will cause the console 
to squawk with irritation, and the "Disk or Tape?" 
prompt will reappear. 

To load a previously saved game, type Q/RETURN 
and then RETURN again to exit. RUN the program 
again and press the OPTION key after the initial- 
ization is complete. When the screen appears, the 
game wiJ) be restored to exactly the way it was when 
you last saved it. 

Don't try aborting the game with the BREAK key. 
The program disables it to prevent you from 
crashing the machine-language routine that blinks 
the cursor. Hit SYSTEM RESET and you will return 
safely to BASIC without erasing the program. 
Hints For Successful Adventuring 

l.Draw a map. You'll get hopelessly lost in the 
streets of Washington if you don't draw a map. The 
alien universe also contains areas that can be tricky 
to navigate without careful mapping. 

The easiest way to map an adventure maze is use 
the "Hansel and Gretel" technique. Drop an item to 
mark your place and move one step in each 
direction, noting where it brings you. Then retrieve 
the item, drop it somewhere else and repeat the 
procedure. 

The method works even better if you have more 
than one item to drop. Be careful - some directions 
loop around in circles, while others bring you back 
to the location you just left! With careful and metho- 
dical mapping, you should be able to figure out the 
entire street niaze in less than 15 minutes. 

2. Use the "H" (Help) command. Different 
locations have different hints. Some of these hints 
may prove very useful. 

3. Examine everything. Objects may have 
important features that will not be evident unless 
you examine them closely. You should also keep 
track of the items you discover — most of them are 
essential to your success. 

4. Save your game frequently. Use the "Q," 
command to save your current status after every 
important discovery, and before you try anything 
that might be dangerous. Otherwise you'll have to go 
back to the street corner and start all over again. 

5. Try anything. Don't be afraid to find out what 
you can or can't do. The worst that can happen is 
that you will be blown into a million pieces. 

6. Don't give up hope. It is possible to retrieve 
the Declaration and return it to the police station — I 
promise! If you're really stuck, ask for other peoples' 
suggestions. A fresh outlook might uncover a 
solution you didn't think of. 



7. Don't call A.N.A.L.O.G. We are absolutely, 
positively and definitely not giving adventure hints 
over the telephone! If you're really stuck, drop us a 
desperate note and we'll print it in our next 
"Letters" column along with an appropriate reply. 
And remember to run D:CHECK or C:CHECK on 
the program before you try to play it. One byte in the 
wrong place can make Adventure in the 5 th 
Dimension as hard to beat as an alien force field! D 



Program Variables 
C0-C710 

Common variables. You can save lots of memory 
by defining commonly used constants as variables. 1 
use the "C" prefix to indicate "common." Unfor- 
tunately, I couldn't use variables for common line 
references because I wanted to make the program 
compatible with the Datasoft BASIC Compiler. See 
review elsewhere in this issue. 

Q,W,I.X,Y,Z 

General-purpose working variables. 

FLAG 

Used to indicate whether the inventory window 
should be updated. See Une 75. 

M$ 

The master location matrix. It contains the data 
which determines the objects and legal exits available 
at each location. M$ is divided into 24 16-character 
sections or modules, each holding the data for one 
location. The first character position in each module 
is a unique letter from A-Y which identifies that 
location. The next six positions correspond to the six 
possible directions of movement. A letter in any 
position indicates which location you will enter if 
you go in that direction. A "?" character indicates no 
exit in that direction. Positions 8-16 contain "?" 
characters unless an object is present; if so, the code 
letter for that object is inserted in any location to a 
maximum of 8. Position 7 was a flag byte used in an 
early version of the program. I was too lazy to 
remove it. 

CL$ 

The current location buffer. Every time you move 
into a new location, the program copies the 
appropriate location module from M$ into CL$. 
Any changes in the status of a location (objects 
dropped or taken, new exits opened, etc.) are made 
in CL$; when you leave that location, CL$ is copied 
back into M$ and a new module is copied into CL$. 
This insures that M$ will always reflect the latest 
status of every location. 

CL, CL8 

The address of CL$ and the address of position 8 
in CL$. 

ST$ 

Player status buffer. The first four positions will 
contain a "?" character unless you have picked up an 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 93 



object; then the code letter for that object is stored 
into one of the positions. Dropping an object 
replaces the letter with a "'?". Your inventory can 
contain no more than 4 objects simultaneously. 
Position 5 is a code letter indicating your current 
location. 

ST 

The address of ST$. 

VERB$, NOUN$ 

These are the lookup tables for the legal verbs and 
nouns. The first four characters of each word are 
stored along with a unique alphabetic identifier. A 
machine-language routine rapidly compares the user 
input with the data in these tables. If a match is 
found, the routine returns the word's identifier 
code; if not, it returns a zero. 

V,N 

The addresses of VERB$ and NOUN$. 

C$ 

The lookup table for single-character commands. 
It is scanned whenever you input a single character. 
A match returns the position of the matching 
character; no match yields a zero. 
K$ 

The keyboard input buffer. 
V$,N$ 

When you enter a sentence and press RETURN, 
lines 56 and 57 break K$ into verb and noun 
segments by determining the location of the space 
character. These segments are stored in V$ and N$ 
for later comparison with the lookup tables. 

LOOK$,DLI$,F$,D$ 

Used to store the program's four machine- 
language subroutines. LOOK$ is a general-purpose 
character locator. DLI$ contains a display list 
interrupt handler that blinks the cursor and changes 
the color of the response window at the bottom of 
the screen. F$ is a high-speed screen clearing routine. 
D$ is the noun/verb decoder. 

OK$,DH$ 

Used to store commonly used text phrases. See 
line 214. 



10 CrR :GOTO 216 

11 GRAPHICS C0:5TS;=M$C4ei,495) :Z=fl5CC5 
TStC5,C53) :OPEN ttC2, C8,ce, "S :" :GOSUB 1 
5:P0KE 703, C4 

12 POSITION CO, 19:? «C2;" 

13 0=USR (ADR (DLISJ , ft&R (DLlSJ +323 :POKE 
54286jl92:P0KE C16,112:P0KE 53774,112: 
GOTO 66 

14 POKE C710,C0:P0KE C709, C14 : RETURN 

15 POKE C789,C14:P0KE C7ie, 148 : RETURN 
:REM 

16 FOR I=CO TO C12 STEP C4 : X1=:USR CADR C 
FS3 13 ; NEKT I 

17 Kl=USRfflDR<FS3,C153 :RETURN 

18 SOUND Ce,25,C10,C15:F0R I=C1 TO C4 : 
NEXT I:SOUND CO, CO, CO, CO : RETURN 

19 ? "I don't understand. Try again." 
:GOTO 53 



? "That is iHpossible. "-.RETURN 

'^ "There isn't enough rooM hepe.":R 



'You hear a powerful blast. 



Ia)J- 



20 
21 
ETURN 

22 ? OKS:? 
" ! RETURN 

23 ? "It isn't hepe.":RETURN 

24 K=U5R(L00K,CL8,H,C83 IRETURN 

25 Y=USRCLOOK,ST,M,C43 :RETURN 

26 G05UB 25:IF Y THEN RETURN 

27 POP :POP :? DHS-.GOTO 53 

28 Q=C16*CA5CtSTSCC5,C53 3~653+Cl:RETUR 
N :REM 

29 POP :FLftG=Cl:GOTO 72 

30 ? ltC2;"Street corner.": RETURN 

31 ? ttC2j"Lost in a Maze of streets.": 
RETURN 

32 ? ttC2;"West of police station, ":RET 
URN 

33 ? «C2;"South of a store. ":RETURN 

34 ? ttC2j"Lobby Of police Station.":? 
«C2;"Sergeant eyes you suspiciously.": 
RETURN 

35 ? tlC2;"BathrooM.":G0SUB 15:RETURN 

36 ? ttC2j"Inside store. Sign reads:": 
? »C2; "GREEN BATTERIES ONLY Sl.00!":RE 
TURN 

nC2; "Dead-end alley .":RETURN 
ttC2;"Fire escape. ":RETURN 
JtC2;"Roof of building. ":RETURN 
»C2j"Bedroo«.": RETURN 
ttC2; "Kitchen.": RETURN 
ttC2j"Mhite UOid.":P0KE C709,Cfl:PO 
KE C710,C14:RETURN 

43 ? trC2j"Golden void.":POKE C709,C14: 
POKE C710, 24: RETURN 

44 ? ttC2j"Green UOid.":P0KE C709,C14:P 
OKE C7ie,212:RETURN 

45 ? ttC2j"Infinite void.":GOSUB 14:RET 
URN 

46 ? «C2j"Lost in a criMson void.":POK 
E C709,C14:P0KE C710, 54 : RETURN 

47 ? ttC2;"Dense forest. ":GOSUB 1S:RETU 

RN 

48 ? ttC2;"River bank.":RETURN 

49 POP :CL0SE ttC2:GRAPHICS CO 

' "Congra 



37 
38 
39 
40 
41 
42 



^50 GOSUB 14:P0SITI0N C12,C10: 

tulations!":? "4 You have saved the 
^ Dec]aration!4444":END 
^\ -rT^ 51 POP :GRAPHICS CO:GOSUB 14:P0KE 752, 
O'^o'-*', Cl:? "44444 An unearthly anti-Matter 
blast" 
52 ? "4 OBLITERATES":? "4 

^ this entire area!":GOTO 223 






^■53 POP :? ">>>>> What next"; :GOSUB 18: 
TRAP 53:INPUT KS:TRAP 48000 :L=LEN tK$3 : 
IF L=CO THEN 19 

54 IF L=C1 THEN US=K$:GOTO 63 

55 Q=USR(LOOK,ADRCKS),ADR(" "},L>:IF 
<C4 THEN 19 

56 US=KSCC1,0-C13 :IF «=C4 THEN WS(C4,C 
43="!" 

57 HS=KStQ+Cl,L3 :IF LEN(N$3<C4 THEN 19 

58 Z=USRtADR(DS3,ADR£UERB53-C5,y3 :IF Z 
=C0 THEN 19 

59 IF Z=76 THEN KS=KS (Q+Cl, L3 

60 Q=USR(ADRCD53 ,ADRCN0UN53-C5,N} :IF Q 
=C0 AND Z<>76 THEN 19 

61 HS=CHRS(Q3 :IF NS="K" THEN ? "Refer 
to it by color, ":G0T0 53 

62 Z=Z-64:0N Z GOSUB 93,107,120,129,13 
6,144,147,153,159,163,177,183,185,188, 
203: GOTO 53 

63 (l=USR(L00K,ADRtCSJ,U,C93 :IF 0=00 TH 
EN 19 

64 IF Q>C6 THEN fl=0-C6:0N Q GOTO 77,82 
,88 

65 a=0*Cl:Z=ASC(CLSCQ,033 :IF Z=63 THEN 
? "You can't go that way."; GOTO 53 

66 GOSUB 16:G0SUB 28 :MS (0, 0+C153 =CLS : S 
TSCC5,C53=CHR$CZ3 IGOSUB 28 : CLS=MS CO, 0+ 
C15J 

67 ? OKS:POSITION C2,C0:? «C2;"Your lo 
cation:",' :P0SITI0N C2,ci 

68 Z=2-64:0N Z GOSUB 30,31,31,32,31,31 
,31,33,34,35,36,37,38,39,40,41,42,43,4 
4,45,46,46,46,47,48 

69 REM » SHOW LEGAL EMITS 



PAGE 94 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 






I. 



J 



^ 



/ 

r 



r 



78 P05ITI0N C2,C4:? »C2;"You can go: " 
i -.FOR I=C1 TO C6:IF CLS tl + Cl, I+C13 <>"? 
" THEM ? aC2;C$CIj,IJ;" ■'; 

71 MEKT I 

72 Kl=USRtADRCFSJ ,C6) : K1=U5R CflDR fFS) , C 
i83:P05ITI0N C2,C6:? «C2j"You see: "j : 
H=C6 

73 FOR I=C1 TO C8:0=flSC(CLStI+C8,I+C8) 
3~64:IF OO-Cl^TJEH RESTORE 245+Q:REflD 

K5:PO5ITI0H 11, H:? «C2Tlr5:K=X+Cl 

74 MEKT I:IF K=C6 THEN POSITION 11, K:? 

»C2;"Mothing interesting" 

75 IF FLflG=Cl THEM FLflG=CB:G0T0 78 

76 GOTO 53 
-77 REM * I 

78 ? 0KS:G05UB 17:P0SITI0M C2,C15:? ItC 
2;"yoiJ have: ■'; 

79 K=C15:F0R I=C1 TO C4 : 0=flSC t5T5 tl , I> 
)-64:IF QO-Cl THEM RESTORE 245+Q:REflD 

K5:P0SITI0M C12,H:? iJC2jKS:K=X+Cl 

89 MEKT I:IF K=:C15 THEN POSITION 12, K: 

? »C2,"Mothing" 
1 — 81 GOTO 53 
• 82 REM » 

83 ? "Type a to save, \'\Ai M \ \ to quitQ" 

J :INPUT KS:IF K5<>"V" THEM CLOSE ttC2:G 

RAPHICS CO:END 
I 84 CLOSE ttCl:POKE 559,34:? "Position 5 

ave: Qisk or QapeQ"; : INPUT HS:IF n5<>" 

0" AND NS<>"T" THEN 53 

85 TRAP 84:KS=:"01:5AUE.DAT":IF NS="T" 
THEM KS="C:" 

86 POKE 559,C0:P0KE 54272, CO :OPEH ttCl, 
C8,ce,KS;TRAP 40000 :HSt401, 4053=515: GO 
SUB 28:MSC0,0+C15)=CL5 

87 FOR 1=325 TO CI STEP -81:? ttCljMStI 
) ,1+803 :NEXT I:? «Cl;MOUMS:CL0SE «ClsPO 
«— KE 559,34:P0KE 54286, 192 : GOTO 53 

— 88 REM » H 

89 IF USRCL00K,ADRC"ABCDEGHUUW"3,CL,C1 
03 THEN ? "A Map is essential. ":GOTO 5 
3 

90 IF USR(LOOK,ADR("JNORSV"J ,CL,C63 TH 
EN ? "ExaHine eyerything.":GOTO 53 

91 IF CL${C1,C13="T" THEM ? "No earthl 
y power can help you,":GOTO 53 

1 92 ? "How's your pitching ari* lately?" 
I—: GOTO 53 

93 REM K UERB A 

94 0=0-64 :GOSUB 24 : IF K=CB THEN G05UB 
25: IF Y=CO THEN 23 

95 ON Q GOTO 96,96,96,96,96,97,96,96,9 
8,96,98,96,99,100,101,99,102,103,96,96 
,104,96,106 

96 ? "Seens ordinary . ":RETURH 

97 ? "There's a battery inside !":RETUR 
N 

98 1 "Has a battery attachwent ."iRETUR 
N 

99 ? "Looks dangerous,": RETURN 

100 ? "Looks like this: aaa":retuhn 

101 ? "They shinner eeri ly .":RETURN 

102 ? "Looks thirsty, ":RETURN 
5: 103 ? "Stock is dated 1775 !": RETURN 
y 104 NS="g";GOSUB 24:IF K=C0 THEN GOTO 

' 105 ? "It's protected by a powerful":? 
"force field, ":RETURN 
106 ? "Looks like a shining door.":RET 

URN 

187 REM » VERB B 

108 GOSUB 25:lF Y THEN ? "YOU already 
have that.": RETURN 

199 Z=USRtLOOK,ST,ADRC"?"3,C43 :IF Z=C0 
THEN ? "You can't carry any Hore.":RE 
TURN 

110 GOSUB 24: IF K=CO THEN 23 

111 IF USRtLOOK,ADRt"NPQSTUM"3,N,73 TH 
EN 20 

^ VJ 112 IF N5="U" AND USRtL00K,CL8,ADR("U" 

/(L^3,ca3 THEN ? "Force field won't let yo 

i^^ U . "' z RETURN 

^113 IF M5="K" and USR (LOOK, CL8, ADR t"P" 
I 3,C83 THEN ? "Beast would rather you d 
~ i dn ' t ,": RETURN 

114 IF NS="R" AND U5R tLOOK, CL8, ADR C"Q" 
3,C83 THEN ? "Soldier won't cooperate. 
":HETURN 



f> 



VJ 



§ 



115 IF NS="D" AND CLS CC1,C13 ="K" THEM 
? "Cashier says, "SI.OO, please. '"iRET 

/URN 

116 IF M$="M" THEN 118 

117 CL$CH+C8,K+C83="?":STS£Z,Z3=N$:G0T 



29 

IJ 




, 118 IF USRCLOOK,ST,ADR("0"3,C43 THEN 1 

L-119 GOTO 51 

-^ JL20 REM » UERB C 

121 GOSUB 26:K=USRtL00K,CL8,ADRt"?"J,C 
83 :IF K=C0 THEN 21 

122 IF NS="L" AND CLS tCl,C13="Y" THEM 
CLS{C9,C93="?":N5="?":? "Soldier walks 

away with it." 

123 IF USRCL00K,ADRf"NP05TUW"3,M,73 TH 
EN 20 

124 IF MS="M" AND CLS CCl, C13 ="T" THEN 
? "It's up against the force field." 

125 IF NS="U" and CLSCC1,C13="I" THEM 
49 

126 IF HS="D" AND CLS (C1,C13 ="K" THEN 
? "Cashier returns it to shelf." 

127 IF U5R tLOOK, CL8, ADR C"M"3 ,C83 THEN 
51 

128 STS CY, V3 ="?" : CLS CK+C8, K+C83 =HS : GOT 
O 29 

129 REM » UERB D 

130 GOSUB 25:IF Y=C0 THEN ? DHS:RETURN 

:REM 

131 IF USRCLOOK,ADH{"MPQV"J,N,C43 THEN 



n/ POP :GOTO 19 
1,^ 132 IF HS 



/dr3e 

/ 137 

1 71 



f 



f 



^ 



1 



^ 



,, jL^i X. iii*-"I" OR NS="K" THEN ? "Needs 
\^ a power source. "iRETURN 

te 133 IF HS="H" OR HS="J" THEN ? "It's a 
Iready activated ." :RETURN 

134 IF HS="S" OR MS="T" THEN ? "Indica 
te a direction. ":RETURM 

135 ? "Be Hore spec i fie .":RETU»« 
~6 REM » UERB E 

137 GOSUB 24:IF N$="5" AND K THEM 146 

138 IF MS="T" THEN ? "It's already ope 

n "'"RETURH 
■? 139 GOSUB 26: IF NS="A" OR MS="U" THEM 
^ ? 0KS:RETURN 

5, 140 IF NS="F" AMD Y THEN 142 
O 141 GOTO 20 

142 NS="?": GOSUB 24: IF K=CO THEM 21 

143 STS fY, Y3 ="G" : M0UN5 C30, 303 ="G" : CLS ( 
K+C8,X*C83="E":G0SUB 97:? "It fell out 

on the floor. ":GOTO 29 
44 REM » UERB F 

145 IF NS<>"5" THEN 20 

146 ? "Lock is very secure." sRETURM 

147 GOSUB 24: IF K=C0 THEN 23 

148 Y=USRtL00K,ST,ADRC"C"},C4J :IF NS=" 
S" AND V THEN 151 

,149 IF NS="S" AMD Y=C0 THEM ? "YOU hav 

ye nothing to break it with.":RETURN 
. 150 GOTO 20 

g 151 CLStC5,C5J="0":CLStK+C8,X+C8}="T": 
-J MSC234,2343="C":5TStY,Y3="?":? "The St 

5 one broke the window!" 

w 152 NOUNS C8O,803="T":P( 

*i-153 REM * UERB H 

154 GOSUB 25:IF Y THEM ? "You already 
have that.": RETURN 

155 GOSUB 24:IF K=C0 THEN ? DHS:RETURH 
^ :REM 

^156 Y=USRtLO0K,ST,ADRC"B"J,C4J :IF Y=CO 
THEN ? "You don't have any Money. ":RE 
V) TURN 

157 IF NS<>"D" THEM 20 

158 STS £Y, Y3 ="D" : CLS (K+C8, K+C83 ="?" : ? 
"Cashier takes your $1 bill.":GOTO 29 

159 REM » UERB I 

160 GOSUB 24: GOSUB 25 : IF X=CO AND Y=C0 
THEN 23 

IP 161 IF NS="M" AMD USR CLOOK, ST, ADR {"0"3 
I*- ,C43=C0 THEM 51 

162 GOTO 96 

163 REM * UERB J 

164 GOSUB 26:IF USR (LOOK, ADR ("MNPaSTUH 
^ "3,M,C83 THEN 20 

? 165 X=USR(L00K,CL8,ADR("?"3,C83 :IF X=C 
N THEN 21 

.; 166 IF NS="C" then 168 
•^ 167 STS{Y,Y3="?":CLS(K + C8,K + C83=NS:? " 



»0P :GOTO 70 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 95 



^ 



v» 



Didn't go far.":GOTO 29 

168 ? "Indicate a direction CHl/5/E/Mj" 
;:G05UB 18:IHPUT K$:IF LEH(KSJ<>C1 THE 
N POP -.GOTO 19 

169 Q:iUSR tLOOK , ftDR (CS3 , ftDR CKS) , C43 : IF 
Q=Ce THEN POP ;GOT0 19 
178 IF CL5C0+C1,0+C1)="?" THEN 176 

171 IF CLSCQ+C1,Q+C13=CLS(C1,C13 THEH 
167 

172 Z=C16Ktft5CtCLSCQ+Cl,a+Cl))-653+C9: 
I=U5R (LOOK, ADR CMS CZ) 3 , ftDH f ■'?"3 , C83 : K=U 
SR(LOOK,<JDRCM5CZ3 3 ,flDRt"M"3 ,C83 

173 IF X AND CLSCC1,C13="Q" ftMD Q=C4 T 
HEK MS C313 , 3203 ="???????U" : 5TS Vi , Y3 ="?^ 
":GOTO 22 

174 IF K THEH MS tZ, Z+73 ="????????" : 5TS 
(y Yj-..,...QOTO 22 

175 IF I THEN MS fZ+I-Cl, Z+I-C13 ="C" :5T 
StV,Y3 ="?";? " Gone! "; GOTO 29 

176 ? "you can'*T"Throw it that way.":R 
ETURN 

77 REM * UERB K 
17S GOSUB 24: IF K=C0 THEN 23 
^179 IF MS="P"' OR MS="Q" THEN 181 
^188 GOTO 29 

)181 IF U5R(L00K,5T,ftDRC"R"3 ,C43=Ce THE 
<N ? "Not Without a weapon. ":RETURH 
182 ? "Bayonet scared it away !":CLS tK+ 
8jK+C83::"?":G0T0 23 
r-rl83 REM » UERB L 
L Ltt')184 ? KS: RETURN 

[L--185 REM # UERB M 
.^ri86 G05UB 26:IF NS<>"0" THEM 28 
^ ^ — 187 ? "You're already wearing theH.":R 
ETURN 
-,^188 REM « UERB M 

189 GOSUB 26:K=U5RtL00K,5T,flDRf"I"3,C4 
3 :Z=U5RCL00K,5T,flDRt"K"3 ,C43 

190 IF K=C0 AND Z=C0 THEH ? "YOU have 
nothing to attach it to.":RETURN 

191 IF MS="D" THEM 194 

192 IF HS="E" THEN 196 

193 GOTO 20 

194 IF Z THEH ? "Cube absorbs the batt 
ery and hu»s.":G0T0 199 

195 IF X THEH ? "Green battery doesn't 
fit.":RETURN 

196 IF X THEN ? "Spheroid absorbs the 
battery and":? "displays a synbol: ^^*- 
":G0T0 198 

197 IF Z THEH ? "Blue battery doesn't 
fit.": RETURN 

198 STS (X, K3 ="H" : MS flSG, 1503 ="0" : MS CIS 
3, 1533 ::"M"; NOUNS C35, 353 ="H": GOTO 201 

199 STStZ,Z3="J":MS{263,2633="J":MSt26 
2, 2623="?" : NOUNS C40, 403=" J" 

200 IF CLStCl,C13="Q" THEN CLS«C6,C53= 
'?":CLS(7,73=:"J" 

THEN CLStC9,C93= 

;GOTO 70: 






201 IF CL^tCl,C13="J' 



u 



\ 202 STSCY^Y3="?":FLAG=C1:P0P 

V_REM 

,--203 REM * UERB 

204 GOSUB 24: GOSUB 25:IF Y=C0 AMD NSO 
"N" THEM ? DHS:RETURN 

205 IF HS="M" AND H THEM 100 

-^206 IF NS="A" AND Y THEM ? "HEADLINE: 



^ 



Declaration stolen!":? "Police Anxious 
ly Await Recovery !":RETURN 
287 IF MS="U" AND Y THEN ? "'Me the pe 
ople ... ■":RETURH 

208 IF NS="M" AND Y THEM 106 

209 GOTO 20 

210 READ FLAG,C0,C1,C2,C4,C5,C6,C7,C8, 
C9,C10,C12,C14,C15jC15,C709,C710 

211 GOSUB 14:P0KE 752, CI:? "iS^ 44^4 
Brian Moriarty '5"i? "4 g:1H'H:iHI 



RE in the 5TH DIMENSION 



212 ' "4- [C31983 ANALOG Cowputing 

":P0SITI0H C12,C16:? "■C£EiiI3lM£I9l 
":REM 

213 DIM MSC4063 ,CLStl63,KSt243 .MSC43 ,U 
S (43, LOOKS (433, UERBSC1003, NOUNS (1083, C 
S (93, STS (53 ,DLIS(643,FS(423 ,DS(763 

214 DIM 0KS(53,DHS(203 :OKS="Okay.":DHS 
="You don't have that." 

215 N0UNS="PAPEABILLBST0NCGREEDBLUEERA 



DIF5PHEICUBEKTEABLMASSHSYMBMGL0U0BEASP 
SOLDQBAYORMIMDSDECLUFIELUDUCTMBATTK" 

216 UERBS="EXAHALOOKATAKEBGET • BDROPCLE 
AUCGIUECUSE!DOPENEUNLOFBREAGSMASGBUY!H 
TOUCITHRO JKILLKSAY < LWEARHATTAHREADO" 

217 CS="NSEMUDI0H":L00K=ADRtL00KS3 :CL= 
ADR (CLS3 : CL8=CL + C8 : U=ADR (US3 : N=ADR (HS3 
:5T=ADR(5TS3 

218 MS (C13 ="?" : MS (4063 ="?" : MS (C2 J =MS : F 
OR I=C1 TO 385 STEP C16:READ CLS:MS(I, 
I+LEM(CLS33=CLS:NEXT I 

219 MS (401, 4053 ="????A" : CLS=MS (Ci, C163 
:FOR I=C1 TO 76:READ :DS (13 =CHRS (03 :N 
EXT I 

220 FOR I=C1 TO 43:READ Q .'LOOKS (13 =CHR 
S(Q3 :HEXT I 

221 FOR I=C1 TO 64: READ :DLIS (13 =CHRS 
(Q3 :NEHT I 

222 FOR I=C1 TO 42: READ « : FS (13 =CHRS (0 
3 :MEKT I 

223 POSITION C4,C16:? "Press WjWilll.t 
o begin new game.":? "4 Press ntnamiM 

to restore old gaMe.S" 

224 IF PEEK (532793 =C6 THEH 11 

225 IF PEEK (532793 =3 THEN 227 

226 GOTO 224 

227 CLOSE «Cl:POKE 559, 34 : POSITION C8, 
20:? "Load froM Bisk or Qapeffi"; : INPUT 
NS:IF HS<>"D" AND MS<>"T" THEN 227 

228 POKE 559,C0:P0KE 54272, CO : TRAP 227 
:KS="01:SAUE.DAT":IF NS="T" THEN KS="C 

■ 11 

229 OPEN nCl,C4,C0,KS:TRAP 48000 

230 FOR 1=325 TO CI STEP -81:INPUT ttCl 
, MS : MS (1 , 1+803 =MS : NEXT I : MS (406 , 4063 =" 
":INPUT ttCi,NOUNS:CLOSE ttCl 

231 5TS=MS(401,4053 :GOSUB 28:CLS=MS(Q, 
0+C153:P0KE 559,34:G0T0 11 

232 DATA 0,0,1,2,4,5,6,7,8,9,10,12,14, 
15,16,709,710 

^•233 DATA AEB?G???A, BABCG, CDCEB, DFCID, E 
EflFC,FFDGE???C,GHBAF,HKG?L,I?J?D 

234 DATA JI??????MB, K?H?????D, L??H?M, M 
■7'>'7'?HL'?5 fj'^'j'j'j'^H'? J o''^MP'''"F p'>iO'*''^''L 
j Q|JRSTK??H, r6u?????M 

235 DATA S???Q???PK, T??a????UU, URQWM, U 
HUMU???0, WWUUU , X??Y??0?W, Y???X???OR 

236 DATA 104,104,133,206,104,133,205,1 
04,133,204,104,133,203,169,0,133,213,1 
62,21,202,240,49,24,165,205 

237 DATA 105,5,133,205,165,286,105,0,1 
33,286,24,160,0,177,283,209,205,288,23 
1,200,177,203,209,205,208 

238 DATA 224,200,177,203,209,205,208,2 
17,200,177,203,209,205,208,210,200,177 
,205,133,212,96,169,0,133,212,96 

239 DATA 104,104,133,286,104,133,205,1 
04,133,204,104,133,203,169,0,168,133,2 
13,177,203,133,207,104,104,168 

240 DATA 136,48,18,165,207,209,205,208 
,247,200,132,212,96,169,0,133,212,96 

241 DATA 184,104,141,1,2,104,141,8,2,1 
73,48,2,133,203,173,49,2,133,204,160,2 
4,169,130,145,203 

242 DATA 169,0,141,243,2,96,0,72,138,7 
2,169,0,162,10,141,18,212,141,24,288,1 
42,23,208,230,208 

243 DATA 165,208,41,16,74,74,74,141,1, 
212,104,170,104,64 

244 DATA 104,104,104,170,165,88,133,20 
3,165,89,133,204,216,24,202,48,15,165, 
203,105,40,133,203,165,204 

245 DATA 105,0,133,204,24,144,238,160, 
159,169,0,145,203,136,208,251,96 

246 DATA Morning paper 

247 DATA Si bill 

248 DATA Stone 

249 DATA Green battery 
258 DATA Blue battery 

251 DATA Broken portable r^dio 

252 DATA Enpty radio 

253 DATA Spheroid With *-^^ sy«bOl 

254 DATA Alien spheroid 

255 DATA HuHMing alien cube 

256 DATA Alien cube 

257 DATA Teabag 

258 DATA Strange shiMwering Hass 



PAGE 96 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



259 DATA Alien syMbol on wall 

260 DATA Strange gloves 

261 DATA s-diMensional beast 

262 DATA British soldier 

263 DATA Bayonet 

264 DATA Locked Window 

265 DATA Broken west window 

266 DATA The Declaration 

267 DATA Powerful force field 

268 DATA TransdiHensional duct 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



19 DATA 340^848,723^954,975,668,574,3, 

94,386,669,532,348,532,491,8113 

25 DATA 294,939,586,558,138,173,348,66 

, 692 , 825 , 485 , 698 , 276 , 855,837,7698 

48 DATA 34,31,795,851,959,322,53,973,5 

57,922,874,649,843,129,793,8785 

55 DATA 375,74,537,559,661,561,226,812 

,847,95,346,556,962,398,631,7648 

78 DATA 246,387,242,868,888,668,641,58 

8,144,789,324,628,591,978,782,8588 

85 DATA 997,233,148,591,792,546,969,98 

8,33,92,458,286,878,868,482,8897 

180 DATA 878,128,5,334,286,443,993,358 

,763,982,828,793,147,137,359,7338 

115 DATA 684,881,62,144,503,351,83,391 

,798,463,899,554,186,51,362,6332 

130 DATA 693,688,557,227,593,395,364,7 

03,163,388,519,495,248,949,367,7269 

145 DATA 958,976,844,991,353,497,669,2 

13,373,774,708,984,925,183,381,9813 

160 DATA 139,589,534,388,59,936,811,74 

,590,736,113,781,759,28,828,7189 

175 DATA 284,918,389,854,645,586,593,6 

32,398,397,394,118,288,399,662,7389 

198 DATA 682,811,817,512,152,364,915,2 

76,235,118,237,458,341,374,721,7885 

285 DATA 512,76,518,538,493,11,48,638, 

838,683,691,479,843,387,672,7339 

220 DATA 578,126,183,992,631,545,789,1 

68,472,982,283,659,482,337,95,7874 

235 DATA 574,677,261,81,958,641,582,54 

9,814,479,495,22,598,343,149,7135 

258 DATA 637,492,558,59,152,672,478,51 

0,839,226,63,52,283,935,103,6059 

265 DATA 12,211,368,644,1235 



Assembly Language Listing 



NOtJNAfERB DECODER 



8218 

8215 

8228 

8225 hEXT 

8236 

8235 

8248 

8245 

8258 

8255 

mt 

8265 

8278 

8275 

8288 

8285 

8298 

8295 

8388 

8385 

8318 

8315 

8328 

8325 

8336 

8335 

8348 

8345 

8356 

8355 

8368 

8365 

8378 

8375 NOPE 

8388 

8385 



LDA #$88 

STA hffiET+1 

LDX »15 

DEX 

BEQ NOPE 

CLC 

LDA TABLE 

ADC #$05 

STA TABLE 

LDA TABLE+1 

ADC #$86 

STA TABLE+l 

CLC 

LDY #f88 

LDA (NOUN) ,Y 

CHP (TABLE) ,Y 

BNENEXT 

INY 

LDA (NOUN),Y 

CMP (TABLE) ,Y 

BNENEXT 

INY 

LDA (NOUN),Y 

CMP (TABLE) ,Y 

BNENEXT 

INY 

LDA (NOLN),Y 

CHP (TABLE), Y 

BNENEXT 

INY 

LDA (TABLE) ,Y 

STANRET 

RTS 

LDA mi 

STANRET 

RTS 



; zero msb 

; noun/«erb count 

; illegal entry 

; +5 to pointer 



init index 

get 1st char 

equal? 

no; next noun 

in-line for speed 

try 2nd char 



try 3rd char 



last char! 



BHist be legal 
get iden i 
give to BASIC 
and return 
8=11 legal entry 
give to BASIC 
and return 



CmRCTER SEARCH ROUTINE 
8185 ■ 
8118 
8115 
8128 
8125 
8138 
8135 
8148 
8145 . 

8158 CADR=*CB 
8155 TABLE=*CD 



Syntax! X=USR(ML,S/r,U,R) 
NL=addr of this routine 
SVT=addr o-f * to be searched 
V=addr of search character 
R=# bytes to search 

Program equates 



6188 
8165 
8116 
6115 
8128 
8125 

ens 

8135 

0148 

8145 NOUN=*CB 

0158 TABLE=$CO 

0155 NlffT=*D4 

8168 : 



8168 CHAR=*CF 
8165 BRET=4D4 
8178 



char addr pointer 
verb table pointer 
character buffer 
BASIC return addr 



Syntax: N=USR(HL,TL-5,NL) 
ML=addr of this routine 
TL=addr of lookup table 
NL=addr of current noun/verb 

Program equates 



noun addr pointer 
table addr pointer 
BASIC return addr 



0165 
8178 
8175 
8188 
0185 
6198 
8195 
8288 
0265 



PLA 

PLA 

STA TAffi.E+1 

PLA 

STA TAH.E 

PLA 

STANOUN+1 

PLA 

STA NOUN 



# arguments 

insb of table addr 

Isb 

rasb of noun addr 

Isb 



0175 
8188 
8185 
8198 
0195 
8268 
8285 
8218 
8215 
8228 
8225 
8236 
0235 
8246 
0245 
6256 
8255 



PLA 

PW 

STA TABLE+l 

PLA 

STA TABLE 

PLA 

STA CADR+1 

PW 

STA CADR 

LDA #$88 

TAY 

STA BREF+l 

LDA (CADR),Y 

STA CHAR 

PLA 

PLA 

TAY 



8268 NEXT DEY 
8265 BMI NOPE 
6278 LDA C\m 



# argifliients 

nsb of table addr 

Isb 

nsb of verb addr 

Isb 



zero nsb 

get the char 

save for later 

nsb of range (ignore) 

Isb 

use as the index 

must be illegal 
get char 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 97 



OP (TABLE) ,Y 



B275 

8288 BNE NEXT 

8285 INY 

8298 STY BRET 

8295 RTS 
8388 NOPE LDA li$88 

8385 STA BRET 

8318 RTS 



(Batch? 

no; try another 
yes; give position 
to mK 
and return 
8=char not found 
give to BASIC 
and return 



; Syntax: USR<DLI,DLI+X) 
: DLI=addr of this rwjtine 
; X=offset to DLI handler 



Progran equates 



; DLI/BLINK ROUTINE 
8185 

eiie 

8U5 

8128 

8125 

8138 

8135 . 

em C0LPF1=$D817 

8145 C0LPF2=$D818 

8158 USWC=4D48A 

0155 SDLSTL=I8238 

ei<59 WSLST=«fl288 

8165 CmCTL=$D48I 

8178 C1*^CT=$82F3 

8175 BUFFER=*CB 

9188 eLINCT=fD8 

8185 ; 

8198 -, First set up the DLI 

8195 ; 

PLA 

PLA 

STA VDSLST+1 

PLA 

STA WSLST 

LDA SDLSTL 

STA BUFFER 

IM SDLSTL+1 

STA BUFFER+1 

LDY #$18 

LDA «$82 

STA (BUFFER) ,Y 

LDA fl86 

STA CHACT 

RTS 



8285 

8218 

8215 

8228 

8225 

8238 

8235 

8248 

8245 

8258 

8255 

8268 

B265 

8278 

8275 

8288 

0285 

8298 

8295 

8388 

8385 

8318 

8315 

8328 

8325 

8338 

8335 

8348 

8345 

0358 

8355 

83<i8 

8365 

8378 

8375 

8388 

8385 



8 arguments 
nsb of DLI addr 

Isb 

find start of 
display list 



node line 28 
DL instruction 

turn off 
inverse video 

nark end of in it 



This is the actual DLI handler 



Pitt 
TXft 
PHA 

LDA «$08 
LDX #$8A 
STA USYfC 
STA C0LPF2 
STX COLPFl 
INC BLINCT 
LDA BLINCT 
M) #fl8 
LSR A 
LSR A 
LSR A 

STA ClttCTL 
PLA 
TAX 
PLA 
RTI 



save accuimjlator 

save X 
black bkgrnd 
white chars 



Blink cursor 



restore A and X 



back to BASIC 



8185 
8118 



; SCREEN ERASE SUBROUTINE 
■ CLEARS IN 4-LINE BLOCKS 



6115 

8128 

0125 

8138 

0135 

8148 . 

0145 HJFFEI^CB 

8158 SAWSC=<58 

8155 



Syntax: X=U8R(H,ST) 
ML=addr of this routine 
ST=startin9 line nmitwr 

PR09WI EQUATES 



scr address buffer 
screentop pointer 



8168 
8165 
8178 
8175 
8188 
8185 
0198 
8195 
8280 
8285 



PLA 

PW 

PLA 

TAX 

LDA SAUMSC 

STA BUFFER 

LDA SAWSCtl 

STA BUFFER+1 

CLU 

CLC 



8218 ADD48 DEX 
8215 BMI CLEAR 
0220 LDA BUFFER 
8225 ADC J»28 
0238 STA BUFFER 
0235 LDA BUFFER+1 
0248 ADC ll$88 
8245 STA BUFFER+1 
0258 CLC 
8255 BCC ADD4e 
0268 CLEAR LDY #$9F 
8265 LDA mt 
0278 SPACE STA (BUFFER) ,Y 
8275 DEY 
8288 BNE SPACE 
8285 RTS 



; t argents 

; nsb of linet; ignore 

,' Isb 

; save in x-register 

; get screen 

; address 



dear decimal mode 
find wincfcM addr 
add 48 



; clear 4 lines 
; space char 





NEW FOR ATARI 

diskwiz 

COMPLETE & AFFORDABLE 
DISK EDITING REPAIR & DUPLICATION 
SYSTEM FOR ATARI OR PERCOM DRIVES 

• single load • fast mach. lang. • repair, explore, dup 
dos/non-dos sectors • simultaneous hex/ascii display and 
editing • print out all modes to any printer • dumps special 
& inverse chars to EPSON graftax & NEC 8023 • fast mapp- 
ing and byte searches • file link trace • speedcheck and ad- 
just • block move • auto link pointer, file code change • 
vtoc bit map changes or check • cross sector disassembler • 
fast/slow copy • 1 or 2 drives • hex-dec-asc conv. • com- 
plete manual • create "bad" sectors • fix deleted or open 
files • fix dup filenames • safely use non-lormattable disks • 
easy, fast, complete • see review Analog 1 1 • more! 

All this for only $25 postpaid 

Don't waste your money on simple copiers or more 
expensive programs that don't deliver as much. 

48 hr. shipping for cashiers checks & money orders. Allow 
up to 3 weeks for personal checks, — C.O.D. add $2.00. 1st 
class add $1.00. Club & dealer enquiry encouraged. 



Ask for it at your local dealer. 






llEN 

Iacroware 



(213)376-4105 

1906 Carnegie Lane "E" 
Redondo Beach, CA 90278 



Alari, Epson, NEC & Percuni, are irademarks of Alari, inc., Epson America, Nip- 
pon Eleclric Comp.iiiy, Pcrcom Data respeclively. 



PAGE 98 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



GRAPHICS 7+ HANDLER 



16K Cassette/ 24K Disk 



by Tom Hudson 



Hidden deep inside the ATARI 400/800 com- 
puter systems are several capabilities that ATARI 
apparently chose to keep a deep, dark secret. Player- 
missile graphics, an incredibly powerful graphics 
tool, are barely hinted at in most ATARI documen- 
tation. Optimized Systems Software's BASIC A+ 
was a step in the right direction as far as P/M 
graphics are concerned, allowing easy manipulation 
in BASIC. 

Unknown to many ATARI users, the 400/800 
computers actually have 14 graphics modes (17 if 
you count GTIA), not just the nine BASIC modes 0- 
8. These additional modes are available in the hard- 
ware, but the Operating System (OS) doesn't 
support them directly. Shown below is a table of 
the ANTIC (hardware) modes and their corre- 
sponding BASIC modes. 



ANTIC 


BASIC DE5CRIPTI0H 




MODE 


MODE 












02 


6 


40 


K 24, 


2 


COLOR, 


TEHT 


83 


— 


40 


K 15, 


2 


COLOR, 


TEHT 


84 


— 


40 


K 24, 


4 


COLOR, 


TEHT 


85 


- 


40 


H 12, 


4 


COLOR, 


TEHT 


66 


1 


20 


H 24, 


5 


COLOR, 


TEHT 


07 


2 


20 


H 12, 


5 


COLOR, 


TEHT 


08 


3 


40 


K 24, 


4 


COLOR, 


GRAPHIC 


03 


4 


80 


H 48, 


2 


COLOR, 


GRAPHIC 


16 


5 


80 


H 48, 


4 


COLOR, 


GRAPHIC 


11 


6 


160 


H 96, 


2 


COLOR, 


GRAPHIC 


12 


- 


160 


H132, 


2 


COLOR, 


GRAPHIC 


13 


7 


160 


K 96, 


4 


COLOR, 


GRAPHIC 


14 


- 


160 


K192, 


4 


COLOR, 


GRAPHIC 


15 


8 


320 


K192, 


2 


COLOR, 


GRAPHIC 



ANTIC mode 3 is a nifty text mode similar to 
GRAPHICS which will allow true descenders on 
lower-case letters. ANTIC 4 and 5 are very power- 
ful text modes allowing 5 colors WITHIN EACH 
CHARACTER! Mode 4 was used for ATARI'S 
adaptation of PAC-MAN, for the maze and bonus 
nuggets. ANTIC 12, which we call GRAPHICS 6+, 
is identical to BASIC GRAPHICS 6, but each 
plotted block (or pixel) is only one scan line tall, 
giving a higher resolution display of 160 by 192. 

The mode this article is concerned with is ANTIC 
14, or GRAPHICS 7+. It is identical to GRAPHICS 
7, but has a resolution of 160 by 192. Using this 



mode will allow the generation of high-resolution 
displays in four colors. The best example of this 
mode is Datasoft's graphics package, 
"Micropainter." This article will present a machine- 
language subroutine which will allow you to use 
GRAPHICS 7+ from BASIC. It also has some nice 
enhancements which make plotting and drawing 
much faster. 

The "Plot" Thickens 

Listing 1 is the BASIC code necessary to use 
GRAPHICS 7+. As written, it will run a continuous 
demonstration, plotting rectangles in 3 colors at 
random points on the screen. Type this listing into 
your computer and SAVE it before running it. 

After SAVEing the program, RUN it. If the listing 
was entered correctly, you will see rectangles plotted 
continuously on your screen. The program has some 
error-checking that will catch some errors in the 
DATA. A "CALC DATA ERROR" indicates an 
error in the plot calculator data in hnes 460-500. A 
"MAIN DATA ERROR" indicates an error in the 
main routine data in lines 540-680. 

Listings 2 and 3 are the machine-language source 
listings of the handler, for those interested in the 
assembler side of the routine. 

Once you have an operating copy of the 
GRAPHICS 7+ handler, you are ready to use it in 
your own programs. 

Inside The Program 

As noted earlier, the program presented here will 
plot random rectangles on your screen. The code 
that performs this function is in lines 230-420. Lines 
50-220 and 440-680 MUST be left as is (of course, 
you can delete the REMarks if you wish). 

Line 50 - READs the DATA in lines 460-500 and 
places it in the user memory. This DATA, the 
machine-language form of listing #2, actually 
performs the calculations needed to PLOT in 
GRAPHICS 7+. 

Lines 110-115 - READs the DATA in Hnes 540- 
680 and places it in the string variable G7P$. This 
DATA is the machine-language form of listing #3, 
and handles GRAPHICS 7+ initialization, 
PLOT ting and DRAWing. Note that a simple 
checksum routine is used to check for DATA errors. 

Line 170 - This Ji-ne sets entry points into the 



ATARI 
MEANS BUSINESS 



■m 'f^ ^ im ^ !jti _ 



BUSINESS PACKAGES FOR $195.00 EACH 

For the first time, Financial Software Plus introduces businesss packages 
for the Atari 400 or 800 computer that simulates business packages found 
on much larger and expensive computer systems. All our packages are 
written by an accountant-programmer and program designer so that you 
can be assured that our packages will meet your individual requirements. 



PAYROLL 

Capacity of 100 Employees per disk. 

User changeable tax codes-five different tax 

tables may be set up. 

Miscellaneous earnings and deductions 

categories are user specified and 

changeable at any time. 

Prints checks, W2's, month-end, quarterly, 

annual and tax reports. 

Fixed or variable deduction capability 



INVENTORY 

Capacity of 500 part numbers, 250 
customers, 250 vendors per disk. 
Maintains customer files, vendor files, and 
sales history by month and year-to-year 
date. 

Generates purchase orders, invoices, quota- 
tions, regular mailing labels, and shipping 
labels. 

Reports Include: Quantity in stock, quantity 
on order, backorder, reorder, and sales 
activity. 

Ability to limit reports by part numbers and 
vendor or both. 

COMMON FEATURES 

• Will run on a one or two disk drive system at any time. 

• All data disks are created automatically-unlimited storage capacity. 

• All reports can be printed to the screen or printer-printer is optional. 

• Can act as a stand alone package or a fully integrated system with our general 
ledger package. 

Stop on down to your nearest dealer and ask for a demonstration. 

Atari is a registered trademark of Atari Incorporated. 

General Ledger, Accounts Payable, and Accounts Receivable Packages Available Soon. 



FINANCIAL SOFTWARE PLUS ^*^ 

121 WEST CEDAR 
KALAMAZOO, MICH. 49007 ^^"^""^ 
(616)345-8546 ^^g^ 

DISTRIBUTOR AND DEALER INQUIRIES WELCOME 



PAGE 100 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



machine-language program located in G7P$. INIT is 
the address of the initialization routine, PL is the 
address of the PLOT routine, and DR is the address 
of the DRAWTO routine. 

Line 220 -- This line initializes the GRAPHICS 7+ 
screen. First, the user must set up a GRAPHICS 8 
screen, either a full-screen or split-screen mode. In 
this case, we want a full-screen GRAPHICS 7+ 
screen so we use GRAPHICS 8+16. Using only 
GRAPHICS 8 will allow the use of a text window at 
the bottom of the screen. We use a GRAPHICS 8 
call because it reserves the same amount of memory 
that GRAPHICS 7+ needs. Next, we do a USR call 
to the INIT routine to actually set up the 
GRAPHICS 7+ screen. It's that simple! 

Line 230 - This line sets COLOR to red. 

Line 280 - This line randomizes the X and Y 
coordinates of the rectangle's upper-left corner. It 
also sets a random COLOR of 1, 2, or 3. We don't 
allow the color value to be zero, as this would be the 
same color as the background, and wouldn't show 
up. 

Line 330 - This line PLOTs the first point of a 

rectangle. It does the same thing as the BASIC 

statement: 

PLOT 10+X,10+Y 

One interesting function incorporated into the 
GRAPHICS 7+ handler is the ability to plot 
multiple points with one PLOT statement. For 
example, examine the following BASIC statements: 

PLOT K,V 
PLOT X+2jV+2 
PLOT K,V+2 
PLOT K+2,V 

These four commands could be done in 
GRAPHICS 7+ with ONE command, as shown 
below: 

A=USR(PL,X,Y,X+2,Y+2,X,Y+2,X+2,Y) 

Using one command for such multiple PLOTs can 
speed up program execution and makes life a little 
easier when keying in programs. Just remember to 
always give the routine an EVEN number of 
arguments (X and Y coordinates). If the GRAPHICS 
7+ handler receives an odd number of arguments, it 
will not plot, but will simply return to BASIC. If the 
X or Y values exceed the screen limits (X = 0-159, 
Y = 0-191), the PLOT will be ignored. 

To summarize, whenever a PLOT is desired in 
GRAPHICS 7+, use the command: 

A=USR(PL,X,Y) 

where X and Y are the coordinates of the pixel to be 
PLOTed. 

Line 380 - This line DRAWs the four sides of the 
rectangle. As with the GRAPHICS 7+ PLOT 
handler, the DRAW handler will accept multiple 
DRAWTOs! As you can see, we can draw a rectangle 
in GRAPHICS 7+ with only TWO commands, 



where normally FIVE BASIC commands would be 
necessary. This line is the same as the four BASIC 
commands: 

DRAHTO 10+X,Y 
DRAMTO K,V 
ORAHTO X,18+V 

DRAHTO ie+K,ietv 

This multiple-argument DRAWTO capability can 
be very powerful, allowing many lines to be drawn 
with one statement. 

Whenever a DRAWTO is desired with 
GRAPHICS 7+, use the command: 

A=USR(DR,X,Y) 

where X and Y are the corrdinates of the pixel a line is 
to be drawn to. This line will originate from the last 
point plotted by the GRAPHICS 7+ routine. 

Line 420 - This line simply transfers control back 
to line 280, where the plotting of another rectangle 
begins. 

Using Graphics 7+ 
In Your Own Programs 

You can easily create programs that use 
GRAPHICS 7+. Simply remove lines 230-420 and 
place your program code after line 220. You may 
change the "GRAPHICS 8+16" command in line 
220 if a split-screen graphics mode is desired. 

I think you will find that GRAPHICS 7+ is a 
happy medium between the somewhat "chunky" 
GRAPHICS 7 and the one-color hi-res GRAPHICS 
8. Its added resolution in the Y-axis brings it close to 
mode 8, and the four-color capability gives 
spectacular displays. 

Interestingly enough, the new ATARI I200XL 
computer supports ANTIC modes 4, 5, 12 (or 6+) 
and 14 (or 7+)! Therefore, this program is 
unnecessary for those future 1200XL owners. Of 
course, any program written with this GRAPHICS 
7+ handler will work on a 1200XL, without 
modification. 

Whichever ATARI computer you own, the 
GRAPHICS 7+ handler will let those hidden 
graphics capabilities shine through. D 



I 


REM mxkkkmmkmwkkwkxmkxmmmxmkmmkkm: 


mt 


2 


REM * 




« 


4 


REM « 
REM * 


GRAPHICS 7t HftMDLER 


* 


b 
6 


HEM « 
HEM # 


BV TOM HUD50M 


# 


S 


REM « 
REM * 


A.N.A.L.O.G. COMPUTING ttll 


* 



3 REM WBf* 

10 REM 

28 REM ***: PLACE PLOT CALCULATOR *** 

30 REM #** ON PAGE 5 *»» 

40 REM 

50 FOR K::0 TO 116:READ N:POKE 1536*X,N 

:CK = CK + H;NEKT K : IF CK015155 THEN ? "C 

ALC DATA ERROR«":EHD 

60 REM 

78 REM JHH* PLACE GRAPHICS 7+ «»« 

80 REM «*» MACHINE-LANGUAGE *»« 

90 REM ^t«« IN STRING G7PS *mi 

100 REM 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 101 



118 DIM G7PS(371) :FOR X=l TO 3?l:Rfc"flD 

H:G7P5CK,H3-CHR$CNJ :CK=CK+H:NEHT k 

115 IF CKO63809 THEN ? "MfilH BATfl ERR 

OR!": END 

12fl REM 

138 REM *#* SET INITIflLIZflTIOM , *** 

14B REM *** PLOT AMD DRAHTO «** 

150 SEH **» UflRIftBLES **« 

160 REM 

170 IHIT=flDRfG7PS} : Pt=IWIl+77 : DRrlNIT* 

129 

ISO REM 

150 REM iHW SET UP GRftPHICS 7+ **« 

200 REM «*» GRAPHICS MODE *** 

210 REM 

220 GRAPHICS 8*16 : A=USR tINIT) 

230 SETCOLOR 0,3,2 

240 REM 

250 REM *«* GET RANDOM K,Y, AND «*« 

260 REM *K* COLOR VALUES *»* 

270 REM 

2S0 K=RNDCOJ»14O:Y=RNDCeJ«ie0:COLOR IN 

T(RND (83*3+1) 

258 REM 

388 REM »«* PLOT THE FIRST POINT »»* 

310 REM «*» IN THE RECTANGLE *** 

328 REM 

330 A=U5RCPL,10+K,ie+¥5 

340 REM 

350 REM *#* DRAW THE 4 SIDES OF *»» 

368 REM «*« THE RECTANGLE *»* 

370 REM 

380 A=USRCDRpl0+K,V,K,V,K,i0+Y,lO+H,18 

338 REM 

488 REM «** DO ANOTHER RECTANGLE *»« 

419 REM 

420 GOTO 280 
430 REM 

440 REM »»* PLOT CALCULATOR DATA «** 

450 REM 

460 DATA 173,241,6,10,133,203,169,0,42 

,133,204,6,203,38,284,6,203,165,203,13 

3.207,38,204,165,204 

470 DATA 133,208,6,203,38.204,6.203,38 

,204,165,203,24.101,207,133,203,165,20 

4,161,208,133,204,155,88 

480 DATA 24,101,203,133.203,165,89,101 

,204.133,204,173,240,6,41,3,170,173,24 

0,6,74,74,24,181,203 

490 DATA 133,283,165,204,185,0,133,204 

,154,208,189,113,6,57,185,6,133,285, 18 

9,109,6,160,0,49,203 

580 DATA 5,206,145,203,96,0,85,170,255 

,63,287,243,252,192,48,12,3 

510 REM 

520 REM M«« 6R. 7+ MACHINE CODE *J«* 

530 REM 

540 DATA 104,173,48,2,24,105,3,133,283 

,173,49,2,105.0,133,204,160,0.177,263, 

201,79,208,21,169 

550 DATA 78,145,203,165,203,24,105,2,1 

33,283,165.204,105,0,133,204,169,0,248 

,15,201,15,208,6,169 

568 DATA 14,145,283.208.5,281,65,208,1 

,96,165,203.24.105,1,133,203,165,204,1 

05,0,133,204,169,8 

570 DATA 240,197,216,104,249,13,133,20 

5,41.1,240,8,166,205,104,104,202,208,2 

51.96,104,104.201.160,176 

580 DATA 22,141,240,6,104,104,201,192, 

176,6,141,241,6,32,8,6,198,205,198,205 

,208,229,96.104,104 

590 DATA 169,0,240,243,216,104,240,217 

,133,205.41,1.240,6,166,205,169.0,240, 

280,104,104,201,168,176 

600 DATA 14,141,242,6,104,104,201,192, 

176,7,141,243.6,144,9,104,184,198,205, 

198,205.288,228,96,205 

610 DATA 241,6,144,14,55,237,241,6,141 

,247,6,169,1,141,249,6,208,15,173,241, 

6,56,237,243,6 

620 DATA 141,247,6,169,255,141,249,6,1 

73,242,6,205,240.6,144,14,56,23 7,240,6 

,141,246,6,169,1 

630 DATA 141,243,6.208,15,173,240,6,56 

,237,242,6,141,246,6,169,255,141,248,6 



,169,0,141,245,6 

640 DATA 141,244,6,173,246,6,285,247,6 

,144,15.141,250,6,133,209,74,141,245,6 

,169,0,240,14,240 

650 DATA 147,173,247,5,141.250,6,133,2 

09,74,141,244,6,173,250,6,240,237,173, 

245,6,24,109,247,6 

660 DATA 141,245,6,197.209,144.19,173, 

245,6,56,229,209,141,245,6,173,241,5,2 

4,109,249.6,141,241 

670 DATA 6,173,244,6,24,109,246,6,141, 

244 , 6 , 197 , 209, 144 , 19, 1 73 , 244 ,6,56, 229, 

209,141,244,6,173 

680 DATA 240,6,24,189,248,6,141,240,6, 

32,8,6,206,258,5,208,182.169,8,240,159 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



1 DATA 746,168,556,172,240,176,687,180 

,762,251,614,549,257,382.251,6001 

78 DATA 728,893,600,74,882,737,80,443. 

114,659,92,497,98,378,220,6479 

210 DATA 79,871,448,88,180.960,97,297, 

103,768,370,84,938,90,92,5465 

360 DATA 978,99,68,185,663.33,721,89,6 

84,95,854,415,819,965.752,7390 

510 DATA 85,181,91,548,871,853,279,713 

,142,6,358,431,477,618.912,6565 

660 DATA 735,711,81,1527 



Assembly Language Listing 





GRAPHICS 7+ HANDLER 








WRITTEN BY: TOM HUDSON 
A.N.A.L.O.G. COMPUTING »I1 








OPERATING SYSTEM EQUATES 


COLOR 


= $58 iSCREEN ADDRESS 
= $C8 i COLOR REGISTER 




MY WORKING WRIABLES 


LO 

HI 

HOLD 

LOHLD 

HIHLD 


= $CB 
= *CC 
= $CE 
= $CF 

= m 


PLOTX 
PLOTY 


PLOT UORK DATA 

= $6FB 
= !t6Fl 

ORG «6B8 jPAGE 6 




GR. 7+ PLOTTER ROUTINE 



PLOTCL LDA PLOTY 



:MULT. Y BY 48! 



PAGE 102 




ASLA 




STA LO 




LDA«e 




ROL A 




STA HI 


«2 


ASL LO 




ROL HI 


■*4 


ASL LO 




STA LOHLD 




ROL HI 




LDA HI 




STA HIHLD 


«8 


ASL LO 




ROL HI 


*{6 


ASL LO 




ROL HI 


;«32 


LDA LO 




CLC 




ADC LOHLD 




STALO 




LDA HI 




ADC HIHLD 




STA HI 


+»8=*48 


LDA SAtJMSC 


ADD THE DISPWY 


CLC 


ADDRESS TO GET 


ADCLO 


THE ACTUAL 


STA LO 


ADDRESS OF THE 


LDA S^it^SC+i 


B'fTE im WILL 


ADC HI 


BE ALTERED FOR 


STA HI 


■THE PLOT. 


LDA PLOTX 


WSK PLOTX FOR 


/^D#3 


PLOT INDEX, 


TAX 


PLACE IN X. 


LDA PLOTX 


GET PLOTX md 


LSRA 


DIUIDE 


LSR A 


■BY 4, 


CLC 


ADD TO 


ADC LO 


PLOT ADDRESS 


STALO 


FOR FINAL PLOT 


LDA HI 


ADDRESS. 


ADC U 




STA HI 




LDY COLOR 


GET COLOR 


LDA BHASK2,X 


AND MASK OFF 


AND COLORS ,Y 


PIXEL POSITION 


STA HOLD 


SAVE IT, 
tttSK OFF PIXEL 


LDA BMASKl.X 


LDY m 


OF THE ADDRESS 


AND (LO) ,Y 


TO BE ALTERED 


ORA HOLD 


|SET THE PLOT 


STA <L0) ,Y 


■BITS AND STORE! 


RTS 


FINIS! 


1 PLOT mSK TABLES 





A.N.A.L.O.G. COMPUTING 



ISSUE 11 



OPERATING SYSTEM EQWTES 



DLISTL = $236 
OLISTH = $231 
COLOR = $C8 



jDISPLAY LIST LOU 
■DISPLAY LIST HIGH 
jBASIC COLOR 



MY WORKING WRIABLES 



LO 


r 


*CB 


HI 


r 


«CC 


AR6NLM 


= 


*CD 


LOHLD 


= 


m 


HIHLD 


= 


m 


ENDPT 


= 


m 



PLOT ADDRESS MLCUWTOR 



PLOTCL 



• 


PLOT mm DATA 




PLOTX 


. 


i6H 


PLOT X LOC, 


PLOIY 


= 


UFl 


PLOT Y LOC. 


DKAUX 


= 


Uf2 


DRAUTO X LOC. 


DRAUY 


= 


un 


;DRAUTO Y LOC. 


ACCX 


= 


Uf4 


X ACCUMULATOR 


ACCY 


= 


$^F5 


■Y ACCUMULATOR 


DELTAX 


r 


$6F6 


DRAUTO WORK AREA 


DLL 1 AY 


= 


i6F7 


DRAWTO WORK AREA 


INCX 


= 


UFB ; 


DRAW X INCREMENT 


INCY 


= 


*6F9 


DRAW Y INCREliENT 


COIWTR 


X 


*iFA 


DRAUTO COlliTER 



RELOCATABLE ROUTINES 



ORG *<588B jANYUHERE 



COLORS D6 $88,$55,$AA,$FF 
BHASKl OB $3F,fCF,$F3,5FC 
BWSK2 DB *C8,$38,$8C,$e3 

END 



GRAPmCS 7+ WWDLER 



liffilTTEN BY: TOM HUDSON 
A.N.A.L.O.G. COMPUTING #11 



; DISPLAY LIST INITIALIZATION 


SETUP PLA 


;(DISCARD) 


LDA DLISTL 


;FIND THE 


CLC 


■ADDRESS OF 


ADC «3 


;THE BASIC 


STA LO 


iDISPLAY LIST 


LDA DLISTH 


\M) PLACE 


ADC «8 


|IN A PAGE 8 


STA HI 


IWORKING AREA 


LDY #8 


;N0 Y OFFSET 


SCANDL LDA (LO),Y 


;SCAN THE DISPLAY LIST 


CMP «4F 


CHANGE 


BNE NOMLD 


■$4F (6R. 3) 


LDA #$4E 


TO 


STA (LO),Y 


$4E (6R. 7+) 


LDA LO 


SINCE THIS UAS 


CLC 


A aOAD MEMORY' 


ADC »2 


INSTRUCTION (3 BYTES) 


STA LO 


WE WILL SKIP 


LDA HI 


THE NEXT 2 BYTES 


ADC«8 


TO GET THE NEXT 


STA HI 


DISPLAY LIST 


LDA #8 


INSTRUCTKJI 


BEQ NXTDLB 


ADDRESS. 


NOMLD CMP #$8F 


CmiQE $8F (GR. 8) 


BNE NOREGL 


TO 


LDA #$8E 


I8E (GR. 7+) 


STA aO),Y 


(HD 60 TO 



ISSUE 11 


A 




BNENXTDLB 


NEXT D.L. INSTRUCTION 


NOREGL 


CMP «$41 


END OF DISP. LIST? 




»1E NXTDLB 


NO: GET NEXT BYTE 


NXTOLB 


RTS 
LDALO 


YES, EXIT' 
INCREMENT THE 




CLC 


MEMORY POINTER 




ADC «1 


TO GET THE 




STA LO 


NEXT BYTE 




LDA HI 


OF THE 




ADC He 


DISPLAY LIST 




STA HI 


mo 




LDA S8 


FORCE BR^CH 




BEQ SCANDL 


BACK TO LOOP! 




GRAPHICS 7+ PLOT HANDLER 


PLOT 


CLD 


; CLEAR DECIMAL MODE 




PLA 


:PULL « OF ARGUMENTS 




BEQ PULLED 


;Oi3P3-N0NE" 




STA ARGNUH 






AND#1 


;NEED EVENS 




BEQ GOODPL 


OK! 




LDX ARGNUH 


;NOT EVEN, 
j CLEAR STACK 


PULLEN 


PLA 




PLA 






DEX' 






BNE PULLEH 




PULLED 


RTS 


;EXIT TO BASIC 


GOODPL 


PLA 


; (DISCARD) 




PLA 


;GET PLOT X 




CMP #168 


; ONSCREEN? 




BCS NOPLOT 


|N0' 




STA PLOTX 


;YES, SAVE 




PLA 


;(DISCARD) 



A.N.A.L.O.G. COMPUTING 



PAGE 103 



DECARG 



NOPLOT 



dfim 



PLA 

CMP #192 
BCS DECARG 
STA PLOTY 
JSR PLOTCL 
DEC ARGNUH 
DEC ARl^UM 
»<E GOODPL 
RTS 
PLA 
PLA 
LDA m 
BEQ DECARG 



GOODDR 



'.GET PLOT Y 
; ONSCREEN? 
;N0! 

;YES, SAVE 
;PLOT IT!!! 
I HEY, WE mJE 
|2 LESS ARCS! 
.■ANOTHER PLOT 
;FINIS! 
jPULL Y-CQQRO 
.■OFF STACK 
! FORCE BMNCH 
■TO NEXT PLOT 



GRAPHICS 7+ DRAW HANDLER 



CLD 


jCLEAR DECimL MODE 


PLA 


;PULL « OF ARGIHENTS 


BEQ PULLED 


■NONE!' 


STA ARGNUM 




AND «1 


;NEED EVEN II 


BEQ GOODDR 


|0K! 


LDX ARGNUi 


;NOT EVEN, 


LDA m 


; FORCE BRANCH 


BEQ PULLEM 


;T0 ABORT. 


PLA 


;(DISCARD) 


PLA 


■,GET DRAWTO X 


CMP #160 


■Or^SCREEN? 


BCS NODRAW 


|N0! 


STA DRAWX 


;YES. aWE IT 
•(DISCARD) 


PLA 


PLA 


■GET DRAWTO Y 


CMP #1?2 


lONSCREEN? 


BCS DECPLA 


;N0! 



YOUR KEY ... TO ATARI® 800 

ENJOYMENT 




Get 
professional 
80 column word 
processing, CP/M, 
data management, remote 
terminal configurations, plus many 
more applications thanks to the 
BIT 3 FULL-VIEW 80. Clear crisp 
characters on your CRT monitor 
with full descenders are standard. 
And all your current Atari 40 col- 
umn and graphics programs work: 
switch between normal Atari 40 
column/graphics mode and 80 col- 
umn mode either under program or 
keyboard control. Just plug into 
slot 3, cable up and fun. Maintain 
48K RAM capacity by installing the 
BIT 3 32K MEMORY PLUS RAM 
card in RAM slot 2. 

Some word processors that 
work in 80 columns on the FULL- 
VIEW 80 are Letter Perfect from 
LJK and Atext-1 by Elcomp Pub- 
lishing. Other popular software that 



runs with the FULL-VIEW 80 is 
Atari's Assembler Editor, Basic Car- 
tridge, Macro Assembler, and 
PASCAL; Optimized System's Basic 
A-I-, OS/A-i-and EASMD; Microsoft's 
BASIC; Teletari by Don't Ask Com- 
puter and T.H.E. Smart Terminal 
by Binary Computer Software. More 
applications are being added every 
day including CP/M by Software 
Publishers. 



See a reviewof the FULL-VIEW 
80 in A.N.A.L.O.G. Computing, 
Issue 9, page 31 . Other reviews avail- 
able upon request. 

Full-View 80 $299.00 

32K Memory Plus $80.00 



OTHER FINE PRODUCTS FROM B/T3 

For Apple computers: Full-View 80, 
2 Serial Channel Card. For IBM PC com- 
puters: Multibus Expansion; General 
products: RS232 Gender Changer/Pin Re- 
configurator. 



CONTACT 
BIT 3 
OR YOUR 
DEALER FOR 
PURCHASE. 



IDBirS 

COMPUTER CORPORATION 

8120 Penn Avenue South 

Minneapolis, Minnesota 55431 

612-881-6955 



VISA-M/C 



PAGE 104 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



NOORAU 
OECPLA 



STADRAUY 
BCC DRUCAL 
PLA 
PLA 

DEC ARGNUH 
DEC ARGNUM 
m. 600DDR 
RTS 



YES, SAi-lE IT 
DRAU LINE! 
DISCARD Y 
COORDINATES 
2 LE^S 
ARGUMENTS 
NOT DONE YET! 
FINISHED! 



BEGIN2 





CALCULATE DRAW VECTOR 


DRWCAL 


CMP PLOTY 


IS DRAUY)PLOTY? 




BCC YMINUS , 


NO! 




SEC i 


SUBTRACT 




SBC PLOTY 


PLOTY FROM DRAWY 




STA DELTAY 


m SAVE DIFFERENCE. 




LDA 411 


Y INCREMENT 




STA INCY 


= 1 (DOUN) 




BNE WEC 


BRANCH! 


wms 


LDA PLOTY 


SUBTRACT 




SEC 


DRAWY 




SBC DRAWY 


FROM PLOTY 




STA DELTAY 


M) SAVE DIFFERENCE. 




LDA #255 


Y INCREMENT 




STA INCY 


= -1 (UP) 


WEC 


LDA DRAUX 


IS DRAUX 




CMP PLOTX 


> PLOTX? 




BCC XMINUS 


NO! 




SEC 


SUBTRACT 




SBC PLOTX 


PLOTX FROM DRAUX 




STA DELTAX 


WD SAVE DIFFERENCE. 




LDA #1 


X INCREMENT 




STA INCX 


IS 1 (RIGHT) 




BNE UECSET 


BRATO! 


XHINUS 


LDA PLOrX 


SUBTRACT 




SEC 


DRAWX FROM 




SBC DRAWX 


PLOTX 




STA DELTAX 


AND SAVE DIFFERENCE. 




LDA «255 


X INCREMENT 




STA INCX 


IS -1 (LEm 


IJECSET 


L0A«8 


ZERO OUT: 




STA ACCY 


,Y ACCUMULATOR 




STA ACCX 


X ACCUMULATOR 




LDA DELTAX 


IS DELTAX) 




CHP DELTAY 


DELTAY? 




BCC WAX 


NO! 




STA COUNTR 


;mJ£ DELTAX 




STA ENDPT 


;1N COIMR, ENDPT. 




LSR A 


jDIVIDE BY 2«^D 




STA ACCY 


STORE IN Y ACCUM. 




LDA«0 


; FORCE BRANCH 




BEQ DRAUGO 


;T0 DRAUGO. 


JDPLA 


BEQ OECPLA 


; LEAPFROG JUMP 


Y?«X 


LDA DELTAY 


; DELTAY LARGER, 




sm comR 


jSTORE IT IN 




STA ENDPT 


; COUNTR, ENDPT. 




LSR A 


•.DIVIDE' BY 2{m 




STA ACCX 


; STORE IN X ACCUM. 




NOW WE START THE 


ACTIWL DRAUTO 




FUNCTION! 





PLOT IT 



SEC 
SBC 
STA 
LDA 
CLC 
ADC 
STA 
LDA 
CLC 
ADC 
STA 
CHP 
BCC 
LDA 
SEC 
SBC 
STA 
LDA 
CLC 
ADC 
STA 
JSR 
DEC 
BNE 
LDA 
BEQ 

END 



ENDPT 

ACCY 

PLOTY 

INCY 

PLOTf 

ACCX 

DELTAX 

ACCX 

ENDPT 

PLOTIT 

ACCX 

ENDPT 

ACCX 

PLOTX 

INCX 

PLOTX 

PLOTCL 

COUNTR 

BEGIN 

«8 

JDPLA 



I FROM Y ACCUMULATOR 



;AND INCREMENT 
;THE Y POSITION! 



:ADD DELTAX TO 
)X ACCUMULATOR 

;AT ENDPOINT YET? 
:N0, GO PLOT. 
; SUBTRACT ENDPT 
iFROM X ACCUMULATOR 



;AND INCREMENT 
I PLOT X 



PLOT THE POINT! 
MORE TO DRAU? 
YES! 

NO MORE, 
FORCE BRANCH. 



DRAUGO 
BEGIN 



LDA COmR 
BEQ JDPLA 
LDA ACCY 
CLC 

ADC DELTAY 
STA ACCY 
CMP ENDPT 
BCC BEGIN2 
LDA ACCY 



IF COUNTR=0... 
NO DRAU! 
ADD DELTAY 
TO Y ACCUMULATOR 



;AT ENDPOINT YET? 
iNO, GO DO X. 
■SUBTRACT ENDPT 




micro 
dice!? 

you roll the dice & develop 
the strategy to beat the 
high score or wipe out your 
opponents! 

Sata Treasures 

presents 

Micro Dice winning game of you vs. chance. 
Fast action game for 1-4 players. 

Micro Blitz mix strategy and lady luck to 
blitz your opponents. 2-4 players. 

Micro Hex your quick decisions and luck 
determine the winner. 

16k cass. - 19.95 ea. Micro Trilogy - 49.95 

Send check or money order to: 

Data Treasures 
323 S. Walnut St. 
Bryan, OH 43506 

Dealer and Distributor inquiries welcome. 



ADD A FLOPPY DISK TO YOUR ATARI* 
FOR LESS THAN $450 ^ - 



Now Atari* users can upgrade to 5" or 8" floppy 
disks at an affordable price with MICRO MAIN- 
FRAME. 

Micro Mainframe, the premier manufacturer of low 
cost add on pehpherals for the TRS-80 computer, 
is proud to announce our lineup of products for the 
Atari* computer. Micro Mainframe is not a new- 



comer to the computer marketplace, as we hav 
been supplying quality disk drives for the TRS-80' 
for three years. We now bring our expertise to the. 
Atari* market and pledge to provide the highest 
quality peripherals at the lowest price. 

Our floppy disk drive is designed to sell for under 
$450, and check out the features: 



Low initial cost includes one disk drive and controller 

Single and Double Density operation STANDARD ^ 

Additional drives available for under $200 

Controller features a proprietary digital phase lock loop data separator for unparalleled reliability 

• Operates 8" disk drives with our MaxiDos A operating system (AVAILABLE MID-1983) 

• Intermix 5" and 8" disk drives with MaxiDos A 

• Includes a parallel printer port to allow the use of low cost printers 

• Expandable to include hard disk operation (requires expansion chassis and host adapter) 

• Includes a SWITCHING POWER SUPPLY that is capable of running two disk drives ^ — 
■,» Can be used in conjunction with other Micro Mainframe peripherals 



''Sftte^xpensive Atari* 810 disk drive includes a 
costly disk controller and power supply for each 
drive. This is vVasteful as one controller can easily 
control up to four disk drives. With a MICRO 
MAINFRAME drive, you pay only once for the disk 
controller. To add a second disk drive, you merely 
purchase a disk drive and case. The power supply 
in your first drive will power an additional disk 
drive. Other manufacturers use cheap linear 
power supplies which generate considerable heat 
that can shorten the life of your electronic equip- 
ment. 



ADD A DISK DRIVE TO YOUR 
ATARI* FOR LESS THAN $90 

If you already own a TRS-80 Model-Hi*, you can 
use your Model-Ill* as an intelligent disk controller 
with the addition of our CONNECTION A™. This 
peripheral connects between the 50 pin expansion 
bus on the Model-Ill* computer and the Atari* 400 
or 800 computer After loading the supplied soft- 
ware package, your Model-Ill* computer thinks 
that it is an Atari* disk drive and you can read and 
write Atari* diskettes on your Model-Ill* for less 
than $90. 



' im i0 ^ - 



Dealer Inquiries are Solicited 



'vAUf 1^^** 



MICRO mainframe:::::^ 



11325 Sunrise Gold Circle 

Building E 

Rancho Cordova, CA 95670 

(916)635-3997 



FIRST BORN IN 1978! 



the original & continuously updated 

CCA 
Data Management 

System 



NowAvailable For Atari Computers $ 99.50 

For Apple Computers 150.00 

For CPM Based Computers 225.00 

CCA Data Management System 
Uses Features And Capabilities 



' Business 

Accounts Receivable 

Accounts Payable 

tnventories 

Billing 

Lists and Rosters 
' Home Phone Lists 

Budgets, Hobbies 




• Long record lengths 

• Up to 24 fields per record 

• Not Copy Quarded 

• Alpha numeric items 

• Numeric only items 

• Add, update, scan, etc. files 

• 10-Level sort ascending, descending, 
allows alphatwtizing data file. 

• Contact your local dealer for 
details or write us for our catalog 



DIVISION OF CUSTOM ElECTRONICS. INC. 

SOFT\A/ARE 



336 Exchange St., Chicopee, Moisochusetts 01013 

(413) 5»2.4761 

Mciitarciird i VISA Accapled 

* Dealer And Diitributor Inquiries Invited 

• CloMd Mondayi - Open Doily Til 330 - Fridoyi 'Til 8 



GETTING SERIOUS ABOUT^ 
PROGRAMMING YET?!? 



ATARr 



UNLOCK 
YOUR A-ncVRI 



WITH THE WORLD'S MOST COMPLETE 
POCKET PROGRAMMING AID. 

g^^r^^,:"] 16 comprehensive pages 




POCKET 
REFERENCE 

CARD 




• error codes 

• basic commands with 
abbreviations 

• peel< and pol<e locations 

• internal codes 

• machine language aides 

• much, much morel! . 

Get Yours Now ^g gi 

(dealer ad space available) 

ORDER NOW-CASH, CHARGE OR C.O.D. 

ADVANCED COMPUTING ENTERPRISES 

5516 ROSEHILL A-1 ^^ 

QSl] SHAWNEE MSN., KS 66216 ^">r 
^(913) 262-2875 • (913) 631-4180^^ 




MAGIC MAIL* 

An caching New Dam Base Mailinti)indPersun;illnri)riniilton System roryourAliiri4aO/800** 
PoTMinal Computer. Never before have all ihese I'ealurcs heen designed inio a single Mailing .ind 
Inrormalion System, so easy to use itnd so powcrl'ul 

COMPARE THESE FEATURES: 



• Data Fields: Name. AddrciS. Ciiy. Siaie. ^ip Code. 

Area Code. Phone Numhcf. Birthday (m/d/y). 
and Entry Type. 

• Up to H)21 rewords per Diskciie! 

• Less than 1 second Searth Time over I.Vi., of your Data, and 2-4 seconds over the 
other 5%-"' 

• Up to 62 SEPARATE and UNIQUK files permilied per Diskette 

• Single or Double Disk Drive Capability. 

• Built in SORT, capable ofSoning ANY Data File by ANY Field with up to 10 Sub- 
liclds. 

• Command-Driven v^iih simpie tnglish-like commands: FIND. MODIFY. 
PRINT. ADD. SORT, etc 

• Position Independent & Position Dependent Fields. 

• Files compatible with Atari DOS II ** 

• Recorded on High-Quality Verbatim Diskettes. 

• Every Diskette Pre-icsted for Bad Scttors and recording integrity. 

• Versions for. Epson MX-80. Prowriier. Centronics 

• Print Single-width Mailing Labels or Directory Listing, 

• 100% Machine, Language. 

• 16 K Minimum Memory. 

• 60-Pagc User Manual. 

• W Day Buyer Protcciion Guarantee. 

Call or write for FREE additional information. 



•MAGIC MAIL is a Trademark of A-BIT-BETTER Sofl^ 
**ATARI is a Registered Trademark of Atari Inc. 
•"Search lime is for an Indexed File. 



*-Bi1-B«ttf Sotrwirt ■» 

Post Office Box 28 
Laurel Md 20707 



(301)953-7256 

Dealer Inquiries Invited 





CREATE YOUR OWN PROTECTED DISKS WITH YOUR AlARI DISK DRIVE 

* SLO-SEC enables your ATARI 810 disk drive to write 
unreaddb'le (bad) sectors used in bad-sector disk 
protection routines. 

* Easy disk drive modification requires only two 
solder connections. 

* SLO-SEC will not interfere with normal disk drive 
operation. 



Complete SLO-SEC kit: 

Hardware and Step-by-Step Instructions: $9,95 

Note: SLO-SEC is designed for second generation drives 
(manufactured after December, 1981) 

For fast service use certified check, money order or charge card. 
Please allow 2 to 3 weeks for personal checks to clear. 

Please send SLO-SEC kits at $ 9.95 each. 



St.rppt. 


City 
MASTERCARD # 


.Stfltp 


Zip 


VI^A # 






Sionaturp 






1704 Princess St. 
Wilmington, NC 28405 

ATARI is a registered trademark of ATARI, Inc. 



J 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 107 



The New AtoriWriter Word Processor 



by Richard Kushner 



This article is being written using the new 
AtariWriter word processor. This immediately 
tells you that it can't be too hard to use, since I've 
only had it in my hot little hands for a few hours and 
have only skimmec^ the manual. The ease of my 
learning to use this software is partly due to its 
simplicity and partly due to its obvious debt to the 
Text Wizard word processor. (Everyone has 
probably heard the rumor (fact?) that the 
AtariWriter was written by the author of Text 
Wizard.) In any event, we are not here to speculate 
but to demonstrate! 

The AtariWriter is a 16K ROM cartridge that 
will work with either disk or tape. With 48K of 
memory, you have about 20K of memory free for 
your text file. This amounts to about 14 double 
spaced pages. Longer documents are handled by 
chaining files together. This means that you put a 
code at the end of "part one" of a long file that calls 
the next piece into memory to be printed and 
continue this process until the entire file is printed. 

The menu that confronts the user initially ( and the 
only menu) consists of eight commands. You merely 
type the first letter of the command and you are then 
prompted what to do next. The function of each 
command is: 

— CREATE File; Use this to start from scratch to 
create a text file. If there is already a file in memory, 
you are prompted whether or not you want it erased. 

— DELETE File: You use this to erase a file on 
disk. There is failsafe prompt before it will actually 
delete the file. Tape users should just write over a file 
to delete it. 

— EDIT File: This will bring you back to the text in 
memory so that you can insert, delete, add or 
perform whatever your editing need happens to be. 

— FORMAT Disk: This is handy if you find 
yourself ready to save, to disk, but don't have any 
formatted disks. This will not write DOS files on the 
disk. (Note that DOS files must be on your data disk 
when you turn on your computer to use 
AtariWriter.) 

— INDEX of Disk Files: Like it says, this will give 
you an on-screen listing of all the files on your date 
disk without destroying any file currently in 
memory. You can also, at your option, print out this 
listing (a very nice feature!). 



— LOAD File: This will move a text file from disk 
or tape into memory where it can then be edited or 
printed. 

— PRINT File: This is used to print your finished 
document on your printer. Read on for more 
information on this command. 

— SAVE File: The obvious opposite to LOAD. If 
your filename for saving is the same as one already on 
the disk, you will be asked if you wish to erase the file 
currently on disk. 

Once you go into the CREATE file mode, you will 
see an array of items surrounding the blank text 
window. Along the bottom are a series of arrows that 
indicate where the TAB positions are set. Default 
values are every five columns and they can be altered 
by the user. However, the altered TAB positions are 
not saved when the file is saved, so any later editing 
that needs other than standard TAB settings will 
have to have them changed again. This seems to be 
only a minor nuisance and falls into the "you can't 
have everything in 16K" category. Also on the 
bottom of the screen are the name of the file 
currently in memory (if it was retrieved from disk) 
and two numbers that tell you the current line and 
column location of the cursor (of duhit:>us value). By 
the way, the cursor is a flashing underline rather than 
the usual ATARI flashing block and is much better 
for worci processor work. 

The very first line at the top of the screen shows 
the default settings for file formatting. These are all 
easily alterable by the user. The default values are: 

Bottom margin: 12 half-lines (1 inch) 

Paragraph spacing: 4 half-lines 

Print style: 10 characters per inch 

Paragraph indentation: 5 spaces from left margin 

Justified right margin: Off 

Left Margin: 10 spaces from left edge of page 

Right margin: 70 spaces from left edge of page 

Line spacing: 2 half-lines (single spacing) 

Top margin: 12 half-lines ( 1 inch) 

Page length: 132 half-lines (11 inches) 
Like Text Wizard, the AtariWriter works in half- 
lines, but differs in using "real" spaces to measure 
across the page (much more convenient than Text 
Wizard). Any modifications that are made in these 
formatting values are saved when the file is saved. 

To create a text file, you merely type on the blank 



PAGE 108 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



screen "page". You do not use the return key unless 
you want to start a new paragraph. If a word at the 
end of a line will not fit on that line, the word 
processor moves it to the next line. All typing is done 
on a screen that has 36 characters per line. This was 
presumably intended to take care of television sets 
that overscan and, therefore, will not show the full 
40 characters/line that are available. To start a 
paragraph with indentation you can just type CTRL- 
P as the first character and you will see a "P' symbol, 
which is easily recognizable as a paragraph sign. 
Upon printing, this will be interpreted as a command 
to indent five spaces. 

Having typed your document on the screen you 
can then edit it to remove mistakes and alter its 
content. It is the editing capabilities that really make 
a word processor plus computer more than just an 
expensive typewriter. Gone is whiteout. Gone is 
retyping an entire document because of missing one 
word in the middle. With the screen editing 
capabilities of AtariWriter you can easily correct 
those "typos" before they get on paper. You can use 
the usual CTRL+arrow keys to move around the 
text file one character at a time or you can use other 
commands to move around in bigger steps. 
SELECT+T moves you instantly to the start of the 
file (T for top) and SELECT+B moves you to the 



end of the file (B for bottom). OPTION+up or 
OPTION+down arrow moves you up or down one 
screen at a time. CTRL+A moves to the beginning of 
the line that the cursor is on and CTRL+Z moves to 
the end of that line (A and Z being the first and last 
letters of the alphabet as well as being conveniently 
close to the CTRL key). All of these commands 
allow you to quickly get to where the editing needs to 
be done. You then can type in any additions and the 
program will move text out of the way to make 
room. You can also delete the character to the left of 
the cursor, the character above the cursor, to the end 
of the line or to the file. You can also delete blocks of 
text that you delineate with CTRL-X characters. If 
you accidentally delete text you wanted to keep, you 
can also take back you last command (with some 
limitation on the amount of deleted text that can be 
restored). This is possible because there is a buffer 
that temporarily holds any deleted text. 

Additional powerful features are the ability to 
duplicate or move blocks of text. This can be useful 
to improve the meaning of a text file by shifting 
around its parts without having to retype or when a 
document has several similarly worded parts and, 
again, retyping can be minimized. Typing changes 
can also be minimized by using the Search and 
Replace functions. For example, you may have 




-W yvT^ 



-V\r 



-W 



1^' 



If reading about 
memory locations Isn't 
enough, the Memory 
Map Tutorial lets you 
watch them work. It is the 
perfect companion to the aval 

Master Memory Map. We dis- 
cuss in detail over 30 of the most 
important memory locations and 
their funaions...l6K tape or disk 
required. $29.95 for ATARI computers. 

vVW_ . W- -. 



THE MOSTVALUABLE REFERENCE BOOKYOU CAN BUY 



ALL NEW - GREATLY EXPANDED! 

The Master Memory Map™ is a guide for beginners and 
experts to the hidden treasures of your computer We 
will show you hundreds of memory locations that you 
can change using PEEK and POKE statements. By 
altering the contents of these locations you can really get 
creative with your computer. Fascinating things you 
never dreamed you could do are now possible. We 

explain the locations controlling Player Missile 
Graphics, Sound Effects, the GTIA chip, Display 
Lists and more. There are also hints on speeding 
up BASIC programs and using memory more 
efficiently, just to name a few. The ATARI 
version of the MMM will also include pages of 
information on the I200XL Put some magic 
into your programs with our Master Memory 
Map... 

For ATARI -$12.95 

For Commodore 64 - $14.95 

For VIC-20 - $9.95 



^kS 



ORDERING INFORMATION: 

lable from most dealers or you can contaa us direttly: 

EDUCATIONAL SOFTWARE inc. 

4565 Cherryvale Avenue 
Soquel, CA 95073 
(408) 476-490! or (800) 692-9520 
, J[ MC/VISA/COD 



.^""^^^ 




'^•«i»).M»*'' 



.^o^a/ 



Make Royal Your 




(So/lWi 



ATARI® Source! ATARI 



Over 1000 
items for 
your 
Atari! 



BAJA BUGGY 





Reg, $32,95 

by 
GAMESTAR 

Now Only 
$29.60 



Vi yoii'Tfe 'rOoWsng for a fast action driving 
game then we recommend this one. Good 
graphics and sound. 



FOOT 



• One or Two 
Players 

• 24K RAM 
Disk or Tape 



Great Graphics 
Scrolling Field 



Reg $31.95 



OUR PRICE 

$28.90 




By Gamestar 









BONUS!!! 

• Disk 
Speed 
Check 

* Screen 
Dump To 
Printer 



$29.95 



Sits over computer to hold your TV/Monitor. 




Add $7.00 
each lor 
shipping. 

T.V. 
STANDS 

A. 800/400 + TV 

B.800/400 + 810 + TV 

C. 800/400 + 2-Percoms + TV 

A. = $29.95 B. = $39.95 C. = $44.95 



INTRODUCING. 



From Royal Software 




"Cliiu. /Il 



48K DISK 




The most user-friendly mail maintenance 
program available! Here are a few of the 
outstanding features. . . 

• New OS that offers fewer 'crashed- 
disks-True random access-Store 500 to 
2000 names/addresses per disl<. 

• Worl<s on single or double density 

• Automatic delete of duplicates. 

• Print a disk directory. 

• Official state abbreviations are built-in. 

• Ivlake back-up copies. • tvlerge files 

• Search files • Sort files 

• Create sub-files • Print tables/file copy 



BOOKSBOOKS-BOOKS 



$12.00 each 



From Royal Software 



•-^ ^ 4«Hniir 



48 Hour 
Shipping 
Available 



2160 W. nth Avenue 

Eugene, Oregon 9/'402 

For Credit Card Orders Call open 

1 -800-452-801 3 Sam 6pm , Men £ 



Isl BOOK OF ATARI, by Compute 
Computes's 2nd BOOK OF ATARI 

A collodion ol relevant arlicles f'om Compute Magazine 

ATARI TECHNICAL USERS NOTES, by Atari 

Includes Hafdwate manual. Opetaling system manual. 

Operating system source tisling VeryUselul' $26.90 

YOUR ATARI COMPUTER, by Lon Poole 

One o( Itie most compfetiensive books on the Alan' 

A must for l/w fieainner. . . $16.95 

SHIPPING NOTE: Add S1 .00 per book for shipping. 



Free Catalog h^t^^^ 

Full of program descriptions / 
•■WITHANYORDER-^ OR ' 

SEN D $1 .00 Refundable with first order 
r Send us your name/address for Free Flyers! ^^^r^^ 



16K 
Tape/Disk 

NOW ONLY 
$29.95 




From Royal Software 

The city is about to be destroyed and 
ONLY you can save its people from 
destruction. FAST, arcade type action 
game. 




DEFENDER 

^\ • 16K Cartridge F^o-^^'a^'- 
^^ • Super Excitement 
Reg $44 95 NOW ONLY $39.50 



New! 

• 10 Different Screens 

• 16K Cartridge 

• Spectacular Sound 
& Graphics 

Reg $J9 95 

OUR PRICE 
ONLY $44.90 




From Big Five 





DUST COVERS 



• 40(V800 Compuler 

• 410 Recorder 

• 810 Disk Drive 

Only$8.95E„h 



We .specialize mATA/i/ Compatible Products 

So we know what works best I'.! 

Call for tfie latest info. . . {503)683-5361 

Shipping: UPS.Parcel Post = $2 00— UPS Air = $3 90 
Shipoing on liardware & paper extra-Call fc costs 



PAGE 110 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



consistently misspelled a word. You can easily 
correct this by using these functions to locate and 
then replace the offending word. You have the 
option whether to change the word at each 
occurrence or whether to change all of them at once. 
Combining all of these commands and features will 
get you to the point of having a document ready to 
see the light of the printed page. 

But wait a minute! Wouldn't it be nice to see on 
your TV what the final printed document will look 
like? Even though the screen only shows 36 
characters per line and a printed page can have up to 
132 characters per line, the AtariWriter has a 
"Print Preview" option (called by OPTION+P) that 
formats your document, page by page, as it will print 
on paper. You then view this "printed" page on your 
screen through a 36 character wide by 21 line high 
"window" which you can scroll around to see the 
entire page. This is very reminiscent of the old 
ATARI Word Processor that did all of its text 
creation and editing in this mode. With the 
AtariWriter, however, you can only look at the 
final form of the document. To do more editing 
you must go back into the normal 36 character per 
line edit mode. Nonetheless, the ability to preview 
the final printed version is a very nice feature to have. 

We are now ready to transfer that document in 



memory onto the printed page. The first time you do 
this in any AtariWriter session you will be asked to 
choose a printer from among the ATARI 1025, the 
ATARI 825, the ATARI 820 and the ATARI 822. 
What, you say, you don't have any of those printers! 
You then choose the ATARI 822 option to get your 
printout. This word processor was originally written 
to support only the ATARI printers (failing to 
recognize that the Epson was the most popular and 
that others were also in use by ATARI owners). This 
is being remedied by the availability of a disk of 
printer drivers from the ATARI Program Exchange 
that will allow you to put a file on your data disk that 
will be loaded into the computer when it boots DOS. 
In this way you will be able to use underlining, 
superscripts, subscripts and print fonts that your 
printer may support without having to go tViiovi'gb 
the task of inserting a complicated series of control 
codes and numbers. The AtariWriter does permit 
inserting other printer codes using CTRL+0 
followed by the decimal value of the printer code 
(for example, 27 for the ESCape code). This is a nice 
capability to have, since it is not possible to include 
all possible features of all possible printers in the 
word processor itself. It is, however, quite 
cumbersome to use and requires that you have ready 
access to the control code values. Thus, it is nice to 







i!^£^ GENERAL 






^ LEDGER SYSTEM 


1 ^p SX6lR£S 

^i^ Jo(jh«|MTABI<«pO/aOO' 




forATARI^ 
800 

CHART OF ACCOUNTS 
TRIAL BALANCE 
INCOME STATEMENT 
BALANCE SHEET 


We've 
Got 


Software 
Free Catalog Available 




S 14095 

Microsoft Base 


ATARI is a regisUred trademark 
of ATARI, INC.. 




<219.95 - 
includes Microsoft Compiler 

VISA - MASTER CHARGE - 
CHECK - MONEY ORDER 




P.O. BOX 21828 

DENVER, COLORADO 80221 

"Your Discount Software Store" 




f€€, Ut. 

•Trademark ATARI, INC. 


Orderline: (303) 431-6598 




4712CHASTANTST. 

METAIRiE.LA.70002 

(504)454-2421 



CANCER. 
NOT KNOWING 

THE 
RISKS IS YOUB 
GREATEST RISK. 

A lot of people think cancer 
is unbeatable. 

That simply isn't true. In fact, 
over two million people have had 
cancer and survived to lead 
happy, normal lives. 

And not only can cancer be 
beaten, it can also be prevented. 

There are definite precau- 
tions that have been proven to 
decrease your risk of getting cer- 
tain cancers. 

Ask your local American 
Cancer Society to send you a free 
booklet about cancer risks. 

Leam the facts about cancer. 

And make not knowing the 

i risks, one less risk. 
/ AMKKAN CANCER SOOETY" 
< How you live may save your life. 

This space contribuled as a public service. 



have the most useful control codes built into the 
AtariWriter. The optional printer driver disk will 
give you this capability. 

You will notice that I have pretty much avoided 
comparing the AtariWriter with other word 
processors available for the ATARI computer. I have 
done this because I believe that this product 
addresses itself best to those who are new at finding 
applications for their computer and want to get 
involved in some "simple" word processing (i.e., a 
note to Aunt Em, a letter to their Congressman, a 
brief article for their local ATARI group newsletter). 
The AtariWriter has good documentation, is 
reasonably easy to learn and to use, doesn't seem to 
leave you hung up anywhere and has sufficient 
commands and flexibility to meet the needs of those 
who are most likely to use it. You really can't ask for 
much more from a word processor that sells for less 
than $100. Yet, as your uses for word processing 
grow (and they will), you will still be able to use 
AtariWriter by employing some of its more 
advanced features. After a series of strikeouts, 
ATARI has a hit on their hands. D 



THE ULTIMATE IN COPY PROTECTION FOR ATARI SOFTWARE 
NOW YOU CAN PROTECT YOUR SOFTWARE FROM UNSCRUPULOUS PIBBTFC 

ATARI° SOFTW/ARE 
PROTECTIOIM TECHIMICaUES 

thoroughly explains the copy techniques used by advanced soft- 
ware pirates. YOU can avoid the common protection pitfalls with 
instruction in the state of the art of software protection schemes. 
This HOW-TO BOOK & PROGRAM includes^ 

HIDING DISK DIRECTORIES 
WRITING BAD SECTORS 
MISASSIGNING SECTORS 

(CUSTOM FORMATTING) 

HARDWARE DATA-KEYS 
EPROM & ROM CARTRIDGES 



for book and disk 
software 

$ia.9s* 

for hook only 



THIS DISK UTILITY 
PACKAGE CONTAINS: 



DISK PACK^OOO 

ULTIMENU - The ultimate iii userlriendly disk menus. Pul on a disk and this self 
bootinq program displays all files and automatically runs the one 
you select. If even runs most BINARY LOAD FILES from basic. 
BACK-A-DISK-Lels you back up almost anything with SECTOR-COPIER & 

BAD SECTOR WRITER. 
DISKTIME - Its a disk t imer that graphically shows disk's RPM's. 
SCnEEN DUIVIPER - T his allows you to transfer any graphic display to a disk, 

then reproduce it anytime in seconds, 
COLOR FIX- Helps adjust your TV to show the right colors and hues for your 
computer 

This utility disk package for your Atari" is tjetfer ^n ^^t * *t * 
than those costing 3 limes the price, omly SQ ^»v«90 



Send CHECK or (vIONEY ORDER to 

ALPHA SYSTEMS 
4a3S MAPLEPARK PD 

STOVA/, OHIO, aaas4 

Or charge lo your MASTERCARD or VISA by calling 

(aiei 374-7489 

'include $2 00 for shipping & fiandling .'Ohio residents add 6 V2% tax. 



e 



LPHA 



S: 



YSTEMS 



V. 




lANGUAGE 
UnUTIES 

for 4IEMII 400/800/1200. 



mbSiH Vervan 
iSotiivarr I utility programs 
WL^^ require no software 
^^^ modifications and are 
a must for all serious ATARI BASIC 
programmers. 

CASDUP 1.0 & 2.0 To copy most 
BOOT tapes and cassette data files. 
1.0 is a file copier. 2.0 is a sector 
copier. Cassette only S24.95 

CASDIS To transfer most BOOT 
tapes and cassette data files to disk. 
Disk only $24.95 

FULMAP BASIC Utility Package. 
VMAP-variable cross-reference, 
CMAP-constanl cross-reference 
{includes indirect address 
references), LMAP-line number 
cross-reference, FMAP-all of the 
above. Will list "unlistable" 
programs. Also works with 
Editor/Assembler cartridge to allow 
editing of string packed machine 
language subroutines. AJl outputs 
may be dumped lo printer Cassette 
or Disk $39.95 

OiSASMTo disassemble machine 
language programs. Works with or 
without Editor/Assembler 



cartridge. May be used to up or 
down load single boot files. All 
output can be dumped to printer 
Cassette or Disk $24.95 

DISDUP For disk sector 
information copying. May specify 
single sector, range of sectors, or all. 
Copies may be made without read 
varify Disk $24.95 

I/G products are available at 
computer stores, B. Dalton 
Booksellers and independent 
dealers around the world. If IJG 
products are not available from your 
local dealer, order direct. Include 
$4.00 for shipping and handling per 
item. Foreign residents add Sit, 00 
plus purchase price per item. U.S. 
funds only please. 

IJG, Inc. 1953 W. I Ith Street 
Upland, California 91786 
Phone: 714/946-5805 

Ifif^from^ 
IT'S JUST GREAT! 

ATAFl TM Warner Communications Inc 




Learn to program the ATARI r„ 
in 6502 McKhkie Language & BASK . 



f; 



Three new ATARI books for ttie 
serious programmer and beginner, are 
now distributed by IJG, for use with 
the ATARI 400 and 800 microcomputer 
systems. 

ATARI BASIC, LeaniinB By Using. 
This is an action book.^You program 
■with it more than you read it. You use 
it, you discover with il, you create it. 
Learn ATARI BASIC easily through the 
short proorams provided. A great 
source of work prot)lems for teacher 
or student. 73()ar)es. ISBN 
3-92-1682-86-X $5.95. 

Games For Tim ATARI. Provides 
ideas on how to create your own 
computer games. Contains primarily 
BASIC examples but, for very 
advanced programmers, a machine 
language example is included at the 
end of the book. 115 pages. ISBN 
3-911682-84-3 $7.95. 

How to Program Your ATARI In 6502 
Machine Language. To teach the 



novice computer user maotlfne 
language, the use of an assembler, 
and how to call subroutines from the 
BASIC interpreter. 106 pages. ISBN 
3-92 1682-97-5 S9. 95. 

IJG products are available at 
computer stores, B. Dalton 
Booksellers and independent dealers 
around the world. 

If IJG products are not available 
from your local dealer, order direct. 
Include S4.00 for shipping and 
handling per item. Foreign residents 
add $11 .00 plus purchase price per 
item. U.S. funds only please. 

IJG, Inc. 1953 W. 11th Street 
Upland, California 91786 
Phone: 714/946-5805 

Hh^fiom^ 
irSJUSTGREAT! 

ATARI TM Warner Communicaiions. Inc 



J 



PAGE 112 



A.N.A.L.O.G. COMPUTING 



ISSUE 11 



EPSET 



6K PRINTER UTILITY (DISK/CASS.) 
by Dick Tedeschi 



Those of you with new Epson printers, if you are 
like me, have been frustrated by all those wonderful 
CONTROL CODES available to do anything from 
change the number of characters per line, change line 
spacing, select full width/double-width/half-width, 
etc. 

There are an impressive number of these "print 
options" available, especially when you "mix and 
match" them to create unusual combinations for a 
specific application. 

This program allows you to choose from among 
the more commonly used commands by way of a 
menu which issues the codes to the printer as well as 
updating the menu as the option is chosen. 

I have found this valuable in setting up VISICALC 
(R) sheets for printing and have used it with a 
multitude of programs in addition to printing out 
program listings (e.g., fit a I Vi page Usting on one 
page). 

1 leave the PAPER OUT switch (#L3) ON (Left) 
which turns the paper out sensor OFF (does that 
make sense?). Then if 1 want to print a single sheet I 
can do so without buzzers ringing and the printer 
halting at the halfway point. If I am using pin-fed 
forms I can select (P) on the menu and the sensor is 
enabled which enables me to walk away and not 
worry about the print roller getting messed up. 

The great part of all this is that the EPSET program 
can be run and then the 400/800 and/or the disk 
drive can be turned off and any program (except a 
few like LETTER PERFECT which internally reset 
& control the printer) can be loaded without 
affecting the print status previously selected. 

(H)elp and (R)eset options are included. Reset 
will simply return the printer to power up state while 
Help gives a brief (one screen) description of the 
program. 

More options which can be added include italics (I 
use inverse char. ) and 480/960 dot graphics select. D 

***Program Variables*** 

A$-W$: print option strings 

K : input Character variable 

CH : number of characters per line 

DL : number of dots per line (L85) 

FL : number of lines per 11" form 

PF : number of lines to skip before perf 



EPSET. BftS 



Epson MK-80 III I F/T Printer 
Control Code iSett-up Prograw 
for use with UISIEALC, Etc. 

DICK TEDESCHI Jan. 16, 1983 

1014 Main Street 
Horwell^ MA 02661 

Try: ft c 5 Q treally snail) 
Try! ft S e (AQ-double width} 



10 REM 
15 REM 
26 REM 
25 REM 
36 REM 
35 REM 
40 REM 
45 REM 
50 REM 
55 REM 
60 REM 
65 REM 

70 REM 

110 CLOSE ttl: CLOSE tt7 

115 TRAP 115:5TflTUS tt?,PE:IF PE=138 TH 

EM GRAPHICS 2:P0SITIOW 3,6:? «6;"TUftW 

OM printer":EHD 

120 OPEH ttl, 4,0, "K:" 

130 OPEH 07, 8,0, "P:" 

135 ? tt7,-CHHS{27J;CHR5t64J 

140 GRAPHICS 

150 REM 155 POKE 710,254:POKE 712,138: 

POKE 709,202 

155 POKE 71O,130:POKE 712,130:POKE 709 

,10 

160 CLR 

170 DIM A$C40),B$C40} ,C$(40),D$(46) ,E$ 

C40} 

180 DIM F5t4OJ,LS(40} ,PS{46),QS{403 ,S$ 

C40],U$C40},MSC4O} 

190 fl5="C6) subscript FONT {toggles B5 



IC:S3 

200 B$="CB) 

210 CS="(CJ 

220 D$="(DJ 

230 E5r"(E3 
■HI"' 

240 r$-"tFy 

250 L5="IL7 

255 P5="CP} 

L3" 

260 «5="'tQ) 

270 SS="CS3 

280 US="(UJ 



N/72 INCH LINE' 
COMPRESSED" 
DOUBLE STRIKE" 
EMPHASIZED 



NOT With (C) or 



SKIP OVER PERF" 
CHARACTERS PER LIME" 
PAPER-OUT ENABLE (SM. 



1-3 



■ MKKKMKMKMKKKMKKICMK 



CH) HELP 



CRJ RESET" 



SUBSCRIPT" 

UNIDIRECTIONAL PRINT" 
290 MS="{M) DOUBLE WIDTH" 
295 TRAP 297: GOTO 300 
297 RUN 
300 POSITION 8,0:? " mkwkkmmkmmkkmkxmmm 

310 POSITION 8,1:? "« EPSON PRINTER OP 

TI0K5 *" 

315 POSITION 8,2; 

KKMKMMM " 

320 ? " 
■ f 

330 ? AS:? BS:? c5:? DS:? ES:? F5 

340 ? LS:? PS:? QS:? SS;? US:? Hf 

HTmnri" 

440 POSITION 10,18:? "VOUR CHOICE CSJ : 

II ( 

450 GET ttl.K 

455 IF CHH5CKJ="H" THEN GOSUB 880:? "H 

if 

457 IF CHRS(K)="R" THEN RUN 

460 IF CHRSCK)="A" THEN ? tt:7jCHR$t273; 

CHRS C65) ; CHRS (5) ," CHRS C153 ; CHRS C27) ; CHR 

S(833JCHRS(13 

465 IF CHRSCKJ="A" THEN BS C4, 53 ="»5" : C 

S(4,43="«":SSC4,43="*":DL=5 

470 IF CHRSfK)="B" THEN POSITION 2,19: 



ISSUE 11 



A.N.A.L.O.G. COMPUTING 



PAGE 113 



? ">I]E 



HE"; :IHPIIT DL:? »7jCHBS(27 



) ; CHRSteSJ ;CHRS tDL) : BS f 4 , 5 J ="*H" 

480 ir CHR$tK)="C" THEN ? «7;CHR$tl53: 

CSf4, 4} ="'«■• 

498 IF CHR5{KJ =■'»■• IHEM ? tt7;CHRS(27); 

CHR$C713 :l>Sf4^4)="»" 

580 IF CHRSCKJ="E" AHD C5 (4, 4J <>•■»■' AM 

D 5514,45 <>■'*'■ THEN ? tt7 ; CHRS C27J ; CHRS 

C653 :ES(4,4J="*" 

510 IF CHRSCK)="F" THEN POSITION 2,26: 

' -OfirarSannTraa"; : INPUT PF:? «7;CHRSC27 



);CHftS(783 :CHRSCPF3 : F$ f4^ 4J ="«'" 

520 IF CHR5CK? ="L" THEM POSITION 2.21: 

? "> !:ajH:iaHn[TB " ; ; INPUT CH:? tt7jCHR5t27 

J ; CHR$C81) :CHRS f CH3 : L5 14 , 4) ="«" 

525 IF CHR5(KJ="P" THEN ? «7jCHR$C273; 

C»R$ 1575 : PS t4 , 43 ="»" 

530 IF CHRS£K3="(1" THEN ? tt7 : OS C4, 43 -" 

«";GOTO 580 

548 IF CHRSCI(5="5" THEN ? «7 ; CHRS C273 ; 

CHHSC833;CHRiCi} :5SC4,43="*" 

558 IF CHRSCK3="U" THEN ? tt7; CHRS £27) ; 

CHRS C853 ; CHRS £13 : US f4, 43 ="*" 

568 IF CHRS£K3="W" THEN ? «7;CHRSC273; 

CHRS t873 ; CHRS tl3 : WS £4 , 43 ="*" 

570 GOTO 300 

580 ? "H" 

590 POSITION 7,5:? "*» EPSON PRINT MOD 

688 POSITION 7,6:? " 

.-IE 

618 ? ______^ 

620 IF CSf4, 43 <>"*"■ THEN ? " l ; Hi 1H T:1;l F 

OKT" 

638 IF ftSt4,43="#" THEN ? flS (4) 

640 IF B5£4,45="»" THEN ? BS{43j" £"; 

DL;"/72J" 

650 IF CSC4,43="*" THEN ? CS£43 

668 IF DSC4,43="»" THEN ? &S£4) 

670 IF ES£4,43::"*" THEN ? ES£4,153 

630 IF FS£4,45=""»" IHEM ? FSt43;" V; 

PF ■ " LXNES3 "' 

698 IF LSf4,4J="«" THEN ? LS£43;" V", 

CHj"/LINE3" 

695 IF PS£4.43="*" THEN ? PS £4, 203 ; "&" 

788 IF SSf4;43="*" THEM ? 5S f 43 

710 IF US £4,43 ='■»■■ THEM ? US £43 

720 IF MS £4, 43="*" THEN ? MS £43 

721 IF !>L = THEN DL = 12 

722 FL=INTf66*£12/DL33 

725 ? :? '■ This Mode giues "-.Ft;" ii 

nes/ 11 in." 

730 IF aS£4.43="«" THEN ? :? " » "IUIB;f:1 



V Hm ENTER OR «1/N A PROGRA 



/35 IF OS £4, 43 ::"*" T HEN ? 

7 3 7 IF qT£ 4 , 4 } = "#" THEN ? '" pi'il^^iMii:i 



ILL REMAIN IN THIS HOI>E 



748 CLOSE ttl: CLOSE tt7 

750 END 

880 ? "ti EPSET INSTRUCTIONS" 

810 ? :? " This is a prograw to sen 

d ill" 

828 ? "those CONTROL CODE COMbinations 

to" 
830 ? "the Epson MK-8a printer for sue 
h" 

848 ? "things as conpressed print or • 
sub-" 
850 ? "script font' Ctry this I use it 

to" 
860 ? "get 156+ lines on an 11 inch sh 
eet" 
878 ? "of paper! H3 or Double-Width or 

any" 
880 ? "other things you May need £Mix 
and" 

890 ? "Match3 , £subscript font = A C S 
Q 3" 

980 ? :? "All you need do is:" 
910 ? "1. TURN ON PRINTER &. IMTERFflCE 
MOD . " 

928 ? "2. RUN THIS PROGRAM £RESETS PRI 
NTER3" 

938 ? "3, ENTER THE LETTER OF THE OPTI 
ON £53" 

948 ? " YOU DESIRE £A '«" MILL APPEA 
B" 



HEKT TO THE OPTION AS IT IS 
WHEN DONE TYPE 'Q' £AS IN OU 
YOU CAM MOH TURN OFF THE COM 
AMD/OR THE DISK DRIVE . THE E 



958 ? 
5ENT3 
960 ? 
ITS ." 
970 ? 
PUTER 
988 ? 
P50N" 

990 ? " WILL REMEMBER! !! 'JJ:;: 

1008 POSITION 10,23:? "HIT SUSM TO BE 

GIN"; 

1010 IF PEEK £532793 <>6 THEM 1818 

1028 RETURN 



CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 



18 DATA 573,866, 
7,129^874,367,58 
128 DATA 264,298 
6,706,756,253,94 
250 DATA 186,38, 
8^973,387,985,66 
448 DATA 414,571 
,777,691,153^92, 
558 DATA 766,723 
37,623,900,637^6 
695 DATA 131,688 
0^922,147,752,53 
838 DATA 619,635 
28^836,721,659,1 
9S8 DATA 578,445 



231,177,613,870,494,43 

9,863^731,168,7982 

,989,896,847.807,64,32 

9,294,818,524,8713 

173.186,679,551,899,12 

,641,819,578,7129 

,52,820,238,67,458,719 

811,839,689,7391 

716,394,529,517,898,6 
44,939,430,638,9923 
,699,710,26,942,204,28 
,880,641,255,7330 
, 304 , 686 . 304 , 434 , 518 , 5 
64,495,595,329,8327 
,277,681,781,2682 



10 REM «»« SHOWFLAKE GENERATOR »** 

20 REM 

30 REM BV TOM HUDSON 

48 REM 

58 REM SET UP GRAPHICS MODE, COLORS 

60 REM 

70 GRAPHICS 8+16:SETC0L0R 2,8,8:C0L0R 

1 

80 REM 

98 REM SET UP DEGREES, X AND Y TABLES 

100 REM 

lie DEG :OIM D £18J ,H£103 , YC18J 

128 REM 

130 REM RANDOMIZE SHAPE 

140 HEM 

158 FOR I-l TO 18:D£I3--0;KCI3=RMDf0J»3 

0:Y£I3=RND£e3*I*4:NEKT IlPOKF. 77,6 

168 REM 

178 REM ECHO AND ROTATE SHAPE 

180 REM 

190 PLOT 168,96: FOR 1:^1 TO iGiDRAWTO 1 

68+ £K £I3»C05 £D £13 3 +y £I3*SIN £D £13 3 3 , 96 + 

£-H £13 »SIN £D £1) 3 +Y £1 J»COS CD £13 J J 

280 D£I3=D£I3+68:MEKT I:IF D£i3<360 TH 

218 FOR I:::! TO 18 : D £13 =0 : MEKT I 

228 PLOT 168,96:F0R I^l TO 10:DHAMTO 1 

68+?K£IJ*C0S£D£I}3-V£IJ»SIH£D£I3 3 3 ,96+ 

£-!< f I3*SIM £D £13 S -Y £I3*C0S £D £13 3 3 

738 D£IJ=D£I}+6e:MEHT I : IF D £13 <368 TH 

EM 220 

248 REM 

758 REM LEfiyE IT ON SCREEN A WHILE 

260 REM 

270 FOR DELAY=1 TO 5809:NEKT DELAY:HUM 

CHECKSUM DATA 
(See D:CHECK/C:CHECK,p.26) 

10 DATA 663, 253, 798, 2Ij7, 711, 261, 187, 26 

5,25,74,612,88,292,86,825,5389 

160 DATA 92,948,98,542,156,151,527,152 

,88,624,94,193,3657 



PAGE 114 A.N.A.L.O.G. COMPUTING ISSUE 11 



HERE ARE 

SOME EXAMPLES 
OF WHAT EPSET CAN DO 



Thi. i« SUBSCRIPTED font (BS,C,S,0> 
fnj» IJ SUBSCKlPltV ittiic 



THIS IS DOUBLE STRIKE, EMPHASIZED 
WITH 9/72 INCH LINE SPACING 



THIS IS COMPRESSED, DOUBLE STRIKE, UN I D I RECT I ONAL , DOUBLE 
WIDTH WITH NORMAL (12/72 INCH) LINE SPACING 



THIS IS ft DEMO DF SUBSCRIPT FONT 

TO SHOW THE EFFECT DF 5/72 INCH LINE SPACINQ 

VDU CAN SET A LOT OF LINES (OVER ISO) TO ft PASE THIS WAV 



THIS IS d,e:,iaj <e>oubi_e strike:, 
e:mf>h#=*si ZED, ooubi—e: widtm> 



THIS IS COMPRESSED, DOUBLE STRIKE 

WITH ONLY 8/72 INCH SPftCING (NOT ENOUGH SHOULD BE 9/72) 

BUT IT DOES WORK AND GIVES 99 LINES TO AN 11 INCH F0RI1.. 



HOW ABOUT COMPRESSED, SUBSCRIPT, DOUBLE WIDTH? 

"T 1 II i: s i: s :i:;> o ii » ■& i ee: s. "T ¥■< t. k. e: ,„ eis t..i o :e* c::;: w< t. f-" "T « 

o cin Lj B L.... EI w :i: :i::::;i' t- ii ii 

■T" « I X s i: ES £s I J 13 *;i3 «::: ¥^. i; f--" "t ee: i::> ^ e> o h ii Em i ke: w :i: r> i"' i « 



!■ M ;i; s! :i: s=s k;ji..)j~i<:^;c:;r :i: i"' r OMi... v 

■i: r i: isi si T" ;i; i. .. i ... ^:^ t^k: j:> i. .)(.:: ii;i:o >=i i; z is: >"u.rT i... .«iPsi:=)isvi;;s rn«>iv) (:::(::)i-if-f;»ih!3s isi i..) ei ei c;:: f :i: :i: f=- r 

rii.r!;i! Xi?, - MOi-^i'iifi>i.... " < x -^n y y u> i: im(;;:m > Siis )"■ iiv, t;:; :i: m ( •* > 




iyoupin iW 



vtig tgii^'" 



^<«^ i 



mst^% 






SiT*.*- 



■--7/. 



V 



;V:- 




p*/' 



L^ 



^ 



|t's the same old story. Your kjl 

Jioots up his favorite space swa^ 

buckler and pleads, "Ah, come on. Dad, 1 

jjust one game of Starstruck.^H™^ ^ 

laturally, you resign yoursJ^^Mmi Mating defeat. Anoth 

ay, another loss. iSMMr^ 

/ell, take revenge with ' @g|l{flSIKr allenqe! ' 

[ractice by yourself, rain or shine, then challenge your kid o 



lite 

fejft a Ifijiffijii^ 



Boon you'll be sayiij 
-ihaUengie;" ' , 

fGolf Challenge cassette'if 



= /MiSlffi &M&m toSDOa WCSQDP DOSaO @&liffl|; 






pter dealer for S24.95 





^iie!@fi£i8isB a imSimieii& @S gii^iM smuiMi. I1N@. 



^ 



WHEN YOU SIT DOWN TO A 
SCOTT ADAMS GRAPHIC ADVENTURE 



n 




tm. 





That's right — anything' can happen, and it ustially 
does! Because with a Scott Adams Graphic Adventure?, the 
fantastic is as close as your computer — and your own 
tertile imagination. Each S.A.G.A. features the finest in hi- 
resolution graphics — graphics which compliment and 
enhance the classic text —.and, they can be toggled on or 
off with a single keystroke, too.-Plus, optional Votrax Type 
'N Talk'^'^ and printer compatibility give you the flexibility to 
add new dimensions to your Adventuring — when you're 
ready, i ^ 

The Incomparable S.A.G.A. Series — experience the, 
maglc,'yourself.-B'ut be prepared for anything. j 



CAN HAPPE 



S.A.G.A. #1 — Adventureland (Skill Level: Moderate) ' 

APPLE 2 PLUS 48^ Disk (DOS 3.3 req.) . . 042-0201 " $39.95 

ATARI 48K Disk : .' 052-0201 $39.^5 

S.A.G.A. #2 — Pirate Adventure (Skill Level: Beginner) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0202 $39.95 

ATARI 48K Disk 052-0202 $39.95 

SAGA #3 — Mission Impossible (Skill Level: Advanced) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0203 $3^.95 

ATARI 48K Disk 052-0203 $30.95 

SAG.A. #6 — Strange Odyssey (Skill Level: Moderate) 
APPLE 2 PLUS 48K Disk (DOS 3.3 req.) . . 042-0206 $39.95 
ATARI 48K Disk 052-0206 $39j95 

PRICES SUBJECT TO' CHANGf' 



Also, look for the Scott Adams Text 
Adventure Series on these fine computers; 
TRS-80 • CPMIVIODORE VIC • NEC POeOOl-,,,,, 
TEXAS INSTRUMENTS 99/4 • CP/M Z-80 



dvehtur6 

INTER NTATIONAL 



To; order, see your local /Jealer. If lie does not have the program, men fcall 

1-aoo-327.7172 (orders only please) or write for our free catalog. t I 

Published by ADVENTURE INTERNATIONAL J- ' J 

y :■ a subsidiary of Scott Adams, Inc. - /■"■■~ 

BOX 3435 • LONGWOOD, FL 32750 • (305) 830-8194 f '